成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

k8s基礎(chǔ)知識(shí)介紹-創(chuàng)新互聯(lián)

今天小編就為大家?guī)硪黄榻Bk8s基礎(chǔ)知識(shí)的文章。小編覺得挺實(shí)用的,為此分享給大家做個(gè)參考。一起跟隨小編過來看看吧。

創(chuàng)新互聯(lián)建站是一家專業(yè)提供金城江企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、外貿(mào)營銷網(wǎng)站建設(shè)、成都h5網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為金城江眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。

自動(dòng)化運(yùn)維
平臺(tái)化(ansible、git、gitlab、docker、jenkins、elk)
自動(dòng)化(工具/腳本)
容器化(docker/k8s)
虛擬化

docker和虛擬機(jī)的區(qū)別
更高效的資源利用。虛擬機(jī)是一個(gè)完備的系統(tǒng),容器只是一個(gè)進(jìn)程。

虛擬機(jī)啟動(dòng)慢,容器是秒級(jí)
一致的運(yùn)行環(huán)境
CI/CD
容器核心概念
鏡像Image
(1)鏡像是一個(gè)特殊的文件系統(tǒng)。它除了提供容器運(yùn)行時(shí)所需的程序、庫、資源、配置等文件外,還包含了一些為運(yùn)行時(shí)準(zhǔn)備的一些配置參數(shù)(例如環(huán)境變量)。鏡像不包含任何動(dòng)態(tài)數(shù)據(jù),其內(nèi)容在構(gòu)建之后也不會(huì)被改變。
(2)鏡像采用的是AUFS,實(shí)現(xiàn)分層結(jié)構(gòu)。鏡像構(gòu)建時(shí),會(huì)一層層構(gòu)建,前一層是后一層的基礎(chǔ)。每一層構(gòu)建完就不會(huì)再發(fā)生改變,后一層上的任何改變只發(fā)生在自己這一層。鏡像是只讀的。創(chuàng)建新鏡像時(shí),底層內(nèi)容不變,只是給鏡像增加了一個(gè)新層次。
容器Container
(1)容器可以認(rèn)為是鏡像的一次執(zhí)行,是可讀寫的鏡像。容器只是操作系統(tǒng)上的一個(gè)進(jìn)程,進(jìn)程執(zhí)行完畢將會(huì)退出。不要假定容器會(huì)一直存在,應(yīng)該假設(shè)它隨時(shí)會(huì)崩潰。容器一旦出現(xiàn)故障,不要猶豫,直接將它刪除,再啟動(dòng)一個(gè)。
(2)按照 Docker 最佳實(shí)踐的要求,容器不應(yīng)該向其存儲(chǔ)層內(nèi)寫入任何數(shù)據(jù),容器存儲(chǔ)層要保持無狀態(tài)化。所有的文件寫入操作,都應(yīng)該使用 數(shù)據(jù)卷(Volume)、或者綁定宿主目錄,在這些位置的讀寫會(huì)跳過容器存儲(chǔ)層,直接對(duì)宿主(或網(wǎng)絡(luò)存儲(chǔ))發(fā)生讀寫,其性能和穩(wěn)定性更高。數(shù)據(jù)卷的生存周期獨(dú)立于容器,容器消亡,數(shù)據(jù)卷不會(huì)消亡。
倉庫Repository
倉庫是鏡像倉庫,負(fù)責(zé)對(duì)Docker鏡像進(jìn)行管理的(類似倉庫管理員),每個(gè)倉庫可以包含多個(gè)標(biāo)簽(Tag),每個(gè)標(biāo)簽對(duì)應(yīng)一個(gè)鏡像。也可以自己創(chuàng)建私有倉庫。
k8s組成
這個(gè)集群主要包括兩個(gè)部分:
一個(gè)Master節(jié)點(diǎn)(主節(jié)點(diǎn)):用于對(duì)容器進(jìn)行控制、調(diào)度,一般是物理服務(wù)器,
一群Node節(jié)點(diǎn)(計(jì)算節(jié)點(diǎn)):工作負(fù)載節(jié)點(diǎn),里面是具體的容器,可以是物理服務(wù)器,也可以是云主機(jī)

補(bǔ)充:
Pod是Kubernetes最基本的操作單元。一個(gè)Pod代表著集群中運(yùn)行的一個(gè)進(jìn)程,它內(nèi)部封裝了一個(gè)或多個(gè)緊密相關(guān)的容器。除了Pod之外,K8S還有一個(gè)Service的概念,一個(gè)Service可以看作一組提供相同服務(wù)的Pod的對(duì)外訪問接口。

k8s架構(gòu)圖

k8s工作流程圖簡述

k8s配置及簡單應(yīng)用
1、作為master安裝k8s(node11:192.168.4.11),同時(shí)作為node節(jié)點(diǎn)安裝docker
2、修改docker配置文件,使之可以使用物理機(jī)上的私有鏡像倉庫

[root@node11 k8s_pkgs]# vim /etc/sysconfig/docker
OPTIONS='--selinux-enabled=false ...        //關(guān)閉selinux
[root@node11 k8s_pkgs]# vim /etc/docker/daemon.json
{
"insecure-registries": ["192.168.4.254:5000"]
}
#################################################################################
[root@room9pc01 images]# docker images      //物理機(jī)(192.168.4.254)搭建私有鏡像倉庫如下
REPOSITORY                                            TAG                 IMAGE ID            CREATED             SIZE
192.168.8.254:5000/mysql                              latest              7bb2586065cd        10 weeks ago        476.9 MB
192.168.8.254:5000/pod-infrastructure                 latest              99965fb98423        19 months ago       208.6 MB
192.168.8.254:5000/guestbook-php-frontend             latest              47ee16830e89        2 years ago         510 MB
192.168.8.254:5000/tomcat-app                         latest              a29e200a18e9        2 years ago         358.2 MB
192.168.8.254:5000/redis-master                       latest              405a0b586f7e        3 years ago         419.1 MB
192.168.8.254:5000/guestbook-redis-slave              latest              e0c36a1fa372        3 years ago         109.5 MB
1
3、啟動(dòng)相關(guān)服務(wù)
k8s—master:
etcd:是一個(gè)數(shù)據(jù)庫,保存了整個(gè)集群的狀態(tài)
kube-apiserver:執(zhí)行指令,提供了資源操作的唯一入口,并提供認(rèn)證、授權(quán)、訪問控制、API注冊(cè)和發(fā)現(xiàn)等機(jī)制
kube-controller-manager:MT5實(shí)際操作www.gendan5.com/mt5.html 控制管理器,負(fù)責(zé)維護(hù)集群的狀態(tài),比如故障檢測、自動(dòng)擴(kuò)展、滾動(dòng)更新等
kube-scheduler:負(fù)責(zé)資源的調(diào)度,按照預(yù)定的調(diào)度策略將Pod調(diào)度到相應(yīng)的機(jī)器上

k8s—node:
kubelet:接受指令的node節(jié)點(diǎn)(k8s客戶端),負(fù)責(zé)維護(hù)容器的生命周期,同時(shí)也負(fù)責(zé)Volume(CVI)和網(wǎng)絡(luò)(CNI)的管理
kube-proxy:代理節(jié)點(diǎn),負(fù)責(zé)為Service提供cluster內(nèi)部的服務(wù)發(fā)現(xiàn)和負(fù)載均衡
docker:真正的容器服務(wù),負(fù)責(zé)鏡像管理以及Pod和容器的真正運(yùn)行

[root@node11 k8s_pkgs]# rpm -q docker
docker-1.13.1-91.git07f3374.el7.centos.x86_64
#master的組件
[root@node11 kubernetes]# systemctl start etcd
[root@node11 kubernetes]# systemctl enable etcd
[root@node11 k8s_pkgs]# systemctl start kube-apiserver.service
[root@node11 k8s_pkgs]# systemctl enable kube-apiserver.service
[root@node11 k8s_pkgs]# systemctl start kube-controller-manager.service
[root@node11 k8s_pkgs]# systemctl enable kube-controller-manager.service
[root@node11 k8s_pkgs]# systemctl start kube-scheduler.service
[root@node11 k8s_pkgs]# systemctl enable kube-scheduler.service
#node的組件
[root@node11 k8s_pkgs]# systemctl start docker
[root@node11 k8s_pkgs]# systemctl enable docker
[root@node11 k8s_pkgs]# systemctl start kubelet.service
[root@node11 k8s_pkgs]# systemctl enable kubelet.service
[root@node11 k8s_pkgs]# systemctl start kube-proxy.service
[root@node11 k8s_pkgs]# systemctl enable kube-proxy.service

4、修改配置,重啟服務(wù)

[root@node11 k8s_pkgs]# ls /etc/kubernetes/
apiserver  config  controller-manager  kubelet  proxy  scheduler
[root@node11 k8s_pkgs]# vim /etc/kubernetes/apiserver
KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"      //允許任何主機(jī)均可以訪問本機(jī)
把ServiceAccount從KUBE_ADMISSION_CONTROL中刪除       //刪除服務(wù)帳號(hào)
[root@node11 k8s_pkgs]# systemctl restart kube-apiserver.service
[root@node11 k8s_pkgs]# vim /etc/kubernetes/config
KUBE_MASTER="--master=http://192.168.4.11:8080"     //指定master的ip地址
[root@node11 k8s_pkgs]# vim /etc/kubernetes/kubelet
KUBELET_ADDRESS="--address=0.0.0.0"     //定義客戶端運(yùn)行在所有地址上,便于master遠(yuǎn)程管理
KUBELET_API_SERVER="--api-servers=http://192.168.4.11:8080"     //客戶端指定服務(wù)器地址和ip
KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=192.168.4.254:5000/pod-infrastructure"     //指定pod(容器組)的私有鏡像倉庫
[root@node11 k8s_pkgs]# systemctl restart kubelet

5、應(yīng)用測試tomcat+mysql

[root@node11 tomcat_mysql]# vim mysql-rc.yaml           /創(chuàng)建mysql的rc聲明文件
apiVersion: v1
kind: ReplicationController     //類型聲明
metadata:
name: mysql           //rc名稱
spec:           //文件聲明
replicas: 1       //要求標(biāo)簽是app:mysql的pod數(shù)目是1
selector:     //選擇器,查找標(biāo)簽是app:mysql的pod
app: mysql
template:     //如果pod數(shù)目不達(dá)標(biāo),創(chuàng)建滿足以下條件的pod
metadata:
labels:
app: mysql
spec:
containers:

  • name: mysql
    image: 192.168.4.254:5000/mysql     //私有鏡像倉庫
    ports:
    • containerPort: 3306
      env:
    • name: MYSQL_ROOT_PASSWORD
      value: "123456"

#根據(jù)yaml文件創(chuàng)建相關(guān)資源
[root@node11 tomcat_mysql]# kubectl create -f mysql-rc.yaml     //啟動(dòng)一個(gè)名稱為mysql的rc容器
[root@node11 tomcat_mysql]# kubectl get rc      //獲取容器信息
NAME      DESIRED   CURRENT   READY     AGE
mysql     1         1         1         1h
[root@node11 tomcat_mysql]# kubectl get pod     //該pod容器組包含一個(gè)基礎(chǔ)架構(gòu)容器和mysql容器
NAME          READY     STATUS    RESTARTS   AGE
mysql-v0pdr   1/1       Running   0          1h

#查看到pod后,查看其詳細(xì)消息
[root@node11 tomcat_mysql]# kubectl describe pod    mysql-v0pdr //查看pod信息
[root@node11 tomcat_mysql]# docker ps

#創(chuàng)建mysql服務(wù)
[root@node11 tomcat_mysql]# vim mysql-svc.yaml      //啟動(dòng)mysql容器服務(wù)腳本
apiVersion: v1
kind: Service
metadata:
name: mysql
spec:
ports:

  • port: 3306
    selector:
    app: mysql
    [root@node11 tomcat_mysql]# kubectl create -f mysql-svc.yaml        //啟動(dòng)mysql容器的mysql服務(wù)
    [root@node11 tomcat_mysql]# kubectl get services        //查看啟動(dòng)的服務(wù)
    NAME         CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
    kubernetes   10.254.0.1       <none>        443/TCP    4h
    mysql        10.254.164.241   <none>        3306/TCP   7mmysql服務(wù)沒有EXTERNAL-IP,因?yàn)橛脩舨恢苯釉L問mysql,而是訪問web服務(wù)

#創(chuàng)建web服務(wù)
[root@node11 tomcat_mysql]# vim myweb-rc.yaml       //啟動(dòng)comcat容器腳本
kind: ReplicationController
metadata:
name: myweb
spec:
replicas: 5       //副本個(gè)數(shù)
selector:
app: myweb
template:
metadata:
labels:
app: myweb
spec:
containers:

  • name: myweb
    image: 192.168.4.254:5000/tomcat-app      //私有倉庫鏡像
    ports:
    • containerPort: 8080
      env:
    • name: MYSQL_SERVICE_HOST        //連接mysql容器
      value: 'mysql'
    • name: MYSQL_SERVICE_PORT
      value: '3306'
      [root@node11 tomcat_mysql]# kubectl create -f myweb-rc.yaml
      [root@node11 tomcat_mysql]# kubectl get rc
      NAME      DESIRED   CURRENT   READY     AGE
      mysql     1         1         1         2h
      myweb     5         5         5         35s
      [root@node11 tomcat_mysql]# kubectl get pods
      NAME          READY     STATUS    RESTARTS   AGE
      mysql-v0pdr   1/1       Running   0          2h
      myweb-jsb1k   1/1       Running   0          47s
      myweb-kl2gk   1/1       Running   0          47s
      myweb-l1qvq   1/1       Running   0          47s
      myweb-p0n7g   1/1       Running   0          47s
      myweb-sh7jl   1/1       Running   0          47s
      [root@node11 tomcat_mysql]# vim myweb-svc.yaml      //myweb服務(wù)腳本
      apiVersion: v1
      kind: Service
      metadata:
      name: myweb
      spec:
      type: NodePort
      ports:
      • port: 8080            //以下兩行表示訪問node的30001,將會(huì)映射到pod的8080
        nodePort: 30001
        selector:
        app: myweb
        [root@node11 tomcat_mysql]# kubectl create -f myweb-svc.yaml        //啟動(dòng)myweb服務(wù)
        [root@node11 tomcat_mysql]# kubectl get service
        NAME         CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
        kubernetes   10.254.0.1       <none>        443/TCP          4h
        mysql        10.254.164.241   <none>        3306/TCP         30m
        myweb        10.254.222.24    <nodes>       8080:30001/TCP   26s  
        [root@node11 tomcat_mysql]# docker ps |awk '{print $2}'
        ID
        192.168.4.254:5000/tomcat-app
        192.168.4.254:5000/tomcat-app
        192.168.4.254:5000/tomcat-app
        192.168.4.254:5000/tomcat-app
        192.168.4.254:5000/tomcat-app
        192.168.4.254:5000/pod-infrastructure       //myweb基礎(chǔ)架構(gòu)容器
        192.168.4.254:5000/pod-infrastructure
        192.168.4.254:5000/pod-infrastructure
        192.168.4.254:5000/pod-infrastructure
        192.168.4.254:5000/pod-infrastructure
        192.168.4.254:5000/mysql
        192.168.4.254:5000/pod-infrastructure       //mysql基礎(chǔ)架構(gòu)容器
        #myweb將啟動(dòng)5個(gè)pod和10個(gè)容器,因?yàn)槊總€(gè)pod需要有一個(gè)基礎(chǔ)架構(gòu)容器,還需要有一個(gè)工作容器,同理mysql也會(huì)啟動(dòng)1個(gè)pod和一個(gè)容器

瀏覽器訪問http://192.168.4.11:30001/
刪除一個(gè)容器后,k8s會(huì)發(fā)現(xiàn)容器數(shù)目已經(jīng)少于rc聲明,它會(huì)自動(dòng)創(chuàng)建新的對(duì)應(yīng)容器

[root@node11 tomcat_mysql]# docker rm -f c1bf3822f088
[root@node11 tomcat_mysql]# docker ps
1
2
如果想要?jiǎng)討B(tài)調(diào)整pod數(shù)目,只是將rc改個(gè)數(shù)即可

[root@node11 tomcat_mysql]# kubectl scale --replicas=3 replicationcontroller myweb      //將myweb容器個(gè)數(shù)調(diào)整為3個(gè)
[root@node11 tomcat_mysql]# kubectl  get rc
NAME      DESIRED   CURRENT   READY     AGE
mysql     1         1         1         1h
myweb     3         3         3         36m
[root@node11 tomcat_mysql]# kubectl get pod
NAME          READY     STATUS    RESTARTS   AGE
mysql-hg9z0   1/1       Running   0          58m
myweb-3g6rz   1/1       Running   0          32m
myweb-90jts   1/1       Running   0          32m
myweb-rvrr1   1/1       Running   0          32m
[root@node11 tomcat_mysql]# docker ps -a |awk '{print $2}'      //docker個(gè)數(shù)也自動(dòng)調(diào)整
ID
192.168.4.254:5000/tomcat-app
192.168.4.254:5000/tomcat-app
192.168.4.254:5000/tomcat-app
192.168.4.254:5000/pod-infrastructure
192.168.4.254:5000/pod-infrastructure
192.168.4.254:5000/pod-infrastructure
192.168.4.254:5000/mysql
192.168.4.254:5000/pod-infrastructure

刪除服務(wù)(pod也稱微服務(wù))、rc

[root@node11 tomcat_mysql]# kubectl delete service mysql
service "mysql" deleted
[root@node11 tomcat_mysql]# kubectl delete service myweb
service "myweb" deleted
[root@node11 tomcat_mysql]# kubectl delete rc mysql
replicationcontroller "mysql" deleted
[root@node11 tomcat_mysql]# kubectl delete rc myweb
replicationcontroller "myweb" deleted
[root@node11 tomcat_mysql]# docker ps       //無容器運(yùn)行

php-redis主從

#redis-master
[root@node11 php_redis]# ls
frontend-controller.yaml  redis-master-controller.yaml  redis-slave-controller.yaml
frontend-service.yaml     redis-master-service.yaml     redis-slave-service.yaml
[root@node11 php_redis]# vim redis-master-controller.yaml
piVersion: v1
kind: ReplicationController
metadata:
name: redis-master
labels:
name: redis-master
spec:
replicas: 1
selector:
name: redis-master
template:
metadata:
labels:
name: redis-master
spec:
containers:

  • name: master
    image: 192.168.4.254:5000/redis-master
    ports:
    • containerPort: 6379
      [root@node11 php_redis]# kubectl create -f redis-master-controller.yaml
      [root@node11 php_redis]# vim redis-master-service.yaml
      apiVersion: v1
      kind: Service
      metadata:
      name: redis-master
      labels:
      name: redis-master
      spec:
      ports:
      • port: 6379
        targetPort: 6379
        selector:
        name: redis-master
        [root@node11 php_redis]# kubectl create -f redis-master-service.yaml

#redis-slave
[root@node11 php_redis]# vim redis-slave-controller.yaml
apiVersion: v1
kind: ReplicationController
metadata:
name: redis-slave
labels:
name: redis-slave
spec:
replicas: 2
selector:
name: redis-slave
template:
metadata:
labels:
name: redis-slave
spec:
containers:

  • name: slave
    image: 192.168.4.254:5000/guestbook-redis-slave
    env:
    • name: GET_HOSTS_FORM
      value: env
      ports:
    • containerPort: 6379
      [root@node11 php_redis]# vim redis-slave-service.yaml
      apiVersion: v1
      kind: Service
      metadata:
      name: redis-slave
      labels:
      name: redis-slave
      spec:
      ports:
      • port: 6379
        selector:
        name: redis-slave
        [root@node11 php_redis]# kubectl create -f redis-slave-service.yaml
        [root@node11 php_redis]# kubectl get rc
        NAME           DESIRED   CURRENT   READY     AGE
        redis-master   1         1         1         9m
        redis-slave    2         2         2         1m
        [root@node11 php_redis]# kubectl get pod
        NAME                 READY     STATUS    RESTARTS   AGE
        redis-master-cn208   1/1       Running   0          9m
        redis-slave-dctvw    1/1       Running   0          1m
        redis-slave-gxtfs    1/1       Running   0          1m
        [root@node11 php_redis]# kubectl get service
        NAME           CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
        kubernetes     10.254.0.1       <none>        443/TCP    9h
        redis-master   10.254.174.239   <none>        6379/TCP   8m
        redis-slave    10.254.117.213   <none>        6379/TCP   42s

#frontend(前端)
[root@node11 php_redis]# vim frontend-controller.yaml
apiVersion: v1
kind: ReplicationController
metadata:
name: frontend
labels:
name: frontend
spec:
replicas: 3
selector:
name: frontend
template:
metadata:
labels:
name: frontend
spec:
containers:

  • name: frontend
    image: 192.168.4.254:5000/guestbook-php-frontend
    env:
    • name: GET_HOSTS_FROM
      value: env
      ports:
      • containerPort: 80
      • [root@node11 php_redis]# kubectl create -f frontend-controller.yaml
        [root@node11 php_redis]# vim frontend-service.yaml
        apiVersion: v1
        kind: Service
        metadata:
        name: frontend
        labels:
        name: frontend
        spec:
        type: NodePort
        ports:

        • port: 80
          nodePort: 30001
          selector:
          name: frontend
          [root@node11 php_redis]# kubectl create -f frontend-service.yaml  
          [root@node11 php_redis]# kubectl get rc
          NAME           DESIRED   CURRENT   READY     AGE
          frontend       3         3         3         2m
          redis-master   1         1         1         14m
          redis-slave    2         2         2         6m
          [root@node11 php_redis]# kubectl get pod
          NAME                 READY     STATUS    RESTARTS   AGE
          frontend-3dqhv       1/1       Running   0          2m
          frontend-ct7qw       1/1       Running   0          2m
          frontend-tz3p4       1/1       Running   0          2m
          redis-master-cn208   1/1       Running   0          14m
          redis-slave-dctvw    1/1       Running   0          6m
          redis-slave-gxtfs    1/1       Running   0          6m
          [root@node11 php_redis]# kubectl get service
          NAME           CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
          frontend       10.254.210.184   <nodes>       80:30001/TCP   42s
          kubernetes     10.254.0.1       <none>        443/TCP        9h
          redis-master   10.254.174.239   <none>        6379/TCP       13m
          redis-slave    10.254.117.213   <none>        6379/TCP       5m

瀏覽器訪問http://192.168.4.11:30001/,測試redis主從讀寫分離

以上就是k8s基礎(chǔ)知識(shí)的詳細(xì)內(nèi)容了,看完之后是否有所收獲呢?如果想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)網(wǎng)站制作公司行業(yè)資訊!

網(wǎng)站欄目:k8s基礎(chǔ)知識(shí)介紹-創(chuàng)新互聯(lián)
鏈接地址:http://jinyejixie.com/article12/cciodc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動(dòng)態(tài)網(wǎng)站、網(wǎng)站營銷、自適應(yīng)網(wǎng)站、品牌網(wǎng)站制作、搜索引擎優(yōu)化、網(wǎng)頁設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計(jì)
西林县| 临颍县| 保靖县| 合作市| 扶沟县| 丁青县| 和顺县| 界首市| 信宜市| 南漳县| 和硕县| 西充县| 那曲县| 纳雍县| 福鼎市| 祁门县| 泸水县| 年辖:市辖区| 确山县| 连云港市| 图片| 武定县| 汕尾市| 广宗县| 东源县| 吴江市| 桑日县| 永清县| 吉安县| 莱州市| 元朗区| 读书| 资兴市| 化德县| 南雄市| 佛坪县| 新营市| 抚远县| 麻城市| 连州市| 防城港市|