设计什么网站简单,找人做网站要拿到源代码吗,低价网站建设联系方式,更改wordpress默认登录后台k8s中的通信模式
1、pod内部之间容器与容器之间的通信#xff0c;在同一个pod 中的容器共享资源和网络#xff0c;使用同一个网络命名空间#xff0c;可以直接通信的
2、同一个node节点之内#xff0c;不同pod之间的通信#xff0c;每个pod都有一个全局的真实的IP地址在同一个pod 中的容器共享资源和网络使用同一个网络命名空间可以直接通信的
2、同一个node节点之内不同pod之间的通信每个pod都有一个全局的真实的IP地址同一个node直接的不同pod可以直接使用对方pod的IP地址通信
pod1和pod2是通过docker0的网桥来进行通信
3、不同node节点的上的pod之间如何进行通信 cni的插件
cni是一个标准接口用于容器运行时调用网络插件配置容器网络负责设置容器的网络命名空间IP地址路由等等参数
flannel插件功能就是让集群之中不同节点的docker容器具有全集群唯一的虚拟IP地址
overlay网络在底层物理网络的基础之上创建一个逻辑的网络层二层和三层的集合二层是物理网络三层是逻辑上的网络层overlay网络也是一种网络虚拟化的技术
flannel支持的数据转发方式
1、UDP模式默认模式应用转发配置简单但是性能最差
2、vlan基于内核转发也是最常用的网络类型一般都是小集群
3、host-gw性能最好但是配置麻烦
UDP基于应用转发fannel提供路由表flannel封装数据包解封装
node都会有一个flannel的虚拟网卡 vxlan使用的就是overlay的虚拟隧道通信技术二层三层的模式
upd基于应用层用户态
vxlanflannel提供路由表内核封装解封装 在 node01 节点上操作
#上传 cni-plugins-linux-amd64-v0.8.6.tgz 和 flannel.tar 到 /opt 目录中
cd /opt/
docker load -i flannel.tarmkdir -p /opt/cni/bin
tar zxvf cni-plugins-linux-amd64-v0.8.6.tgz -C /opt/cni/bin//在 master01 节点上操作
#上传 kube-flannel.yml 文件到 /opt/k8s 目录中部署 CNI 网络
cd /opt/k8s
kubectl apply -f kube-flannel.yml kubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE
kube-flannel-ds-hjtc7 1/1 Running 0 7skubectl get nodes
NAME STATUS ROLES AGE VERSION
192.168.80.11 Ready none 81m v1.20.11
flannel每个发向容器的数据包进行封装vxlan通过vtep打包数据由内核封装成数据包----转发目标的node节点---到了目标node节点还有一个解封装的过程再发送目标pod性能是有一定影响的 Calico插件
calico采用直接路由的方式BGP路由不需要修改报文统一直接通过路由表转发路由表会相当复杂运行维护的要求比较高
BGP模式的特点交换路由信息的外部网关协议可以连接不同的node节点node节点可能不是一个网段BGP实现可靠的最佳的而且是动态的路由选择自动识别相邻的路由设备 calico不使用overlay也不需要交换直接通过虚拟路由实现每台虚拟路由都通过BGP
核心组件
felix也是运行在主机中的一个个pod一个进程k8s daemont set 会在每个node节点部署相同的pod后台的运行方式
负载宿主机上插入路由规则维护calico需要的网络设备网络接口管理监听路由等等
BGP clientbird BGP的客户端专门负责在集群中分发在集群中分发路由规则的信息每一个节点都会有一个BGP client
BGP协议广播方式通知其他节点的分发路由的规则实现网络互通
etcd 报讯路由信息负责网络元数据的一致性保证网络状态的一致和准确
calico的工作原理
路由表来维护每个pod之间的通信创建好pod之后添加一个设备cali veth pair设备
虚拟网卡veth pair 是一对设备虚拟的以太网设备
一头连接在容器的网络命名空间eth0
另一头连接宿主机的网络命名空间 cali
ip地址fenpeiveth pair连接容器的部分给容器分配一个IP地址这个IP地址是唯一标识宿主机也会被veth pair分配一个calico网络的内部IP地址和其他节点上的容器进行通信 veth设备容器发出的IP地址通过veth pair设备到宿主机宿主机根据路由规则的下一跳发送到网关目标宿主机
数据包到达目标宿主机veth pair设备目标宿主机噎死根据路由规则下一跳地址转发到目标容器
ipip模式会生成一个tunnel数据包都在tunnel内部打包封装宿主机ip 容器内部的IP地址
部署calico
在 master01 节点上操作
#上传 calico.yaml 文件到 /opt/k8s 目录中部署 CNI 网络
cd /opt/k8s
vim calico.yaml
#修改里面定义 Pod 的网络CALICO_IPV4POOL_CIDR需与前面 kube-controller-manager 配置文件指定的 cluster-cidr 网段一样- name: CALICO_IPV4POOL_CIDRvalue: 10.244.0.0/16 #Calico 默认使用的网段为 192.168.0.0/16kubectl apply -f calico.yamlkubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE
calico-kube-controllers-659bd7879c-4h8vk 1/1 Running 0 58s
calico-node-nsm6b 1/1 Running 0 58s
calico-node-tdt8v 1/1 Running 0 58s#等 Calico Pod 都 Running节点也会准备就绪
kubectl get nodes在 node01 节点上操作
cd /opt/
scp kubelet.sh proxy.sh root192.168.233.93:/opt/
scp kubelet.sh proxy.sh root192.168.233.94:/opt/
scp -r /opt/cni root192.168.233.93:/opt/
scp -r /opt/cni root192.168.233.94:/opt/
//在 node02 节点上操作
#启动kubelet服务
cd /opt/
chmod x kubelet.sh
./kubelet.sh 192.168.233.94//在 master01 节点上操作
kubectl get csr
NAME AGE SIGNERNAME REQUESTOR CONDITION
node-csr-BbqEh6LvhD4R6YdDUeEPthkb6T_CJDcpVsmdvnh81y0 10s kubernetes.io/kube-apiserver-client-kubelet kubelet-bootstrap Pending
node-csr-duiobEzQ0R93HsULoS9NT9JaQylMmid_nBF3Ei3NtFE 85m kubernetes.io/kube-apiserver-client-kubelet kubelet-bootstrap Approved,Issued#通过 CSR 请求
kubectl certificate approve node-csr-BbqEh6LvhD4R6YdDUeEPthkb6T_CJDcpVsmdvnh81y0kubectl get csr
NAME AGE SIGNERNAME REQUESTOR CONDITION
node-csr-BbqEh6LvhD4R6YdDUeEPthkb6T_CJDcpVsmdvnh81y0 23s kubernetes.io/kube-apiserver-client-kubelet kubelet-bootstrap Approved,Issued
node-csr-duiobEzQ0R93HsULoS9NT9JaQylMmid_nBF3Ei3NtFE 85m kubernetes.io/kube-apiserver-client-kubelet kubelet-bootstrap Approved,Issued#加载 ipvs 模块
for i in $(ls /usr/lib/modules/$(uname -r)/kernel/net/netfilter/ipvs|grep -o ^[^.]*);do echo $i; /sbin/modinfo -F filename $i /dev/null 21 /sbin/modprobe $i;done#使用proxy.sh脚本启动proxy服务
cd /opt/
chmod x proxy.sh
./proxy.sh 192.168.233.94#查看群集中的节点状态
kubectl get nodes
coredns
可以集群当中的service资源创建一个域名和ip进行对应解析的关系
service是对外提供访问的地址现在我们加入DNS机制之后可以直接访问访问服务名
部署coreDNS
在所有 node 节点上操作
#上传 coredns.tar 到 /opt 目录中
cd /opt
docker load -i coredns.tar//在 master01 节点上操作
#上传 coredns.yaml 文件到 /opt/k8s 目录中部署 CoreDNS
cd /opt/k8s
kubectl apply -f coredns.yamlkubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE
coredns-5ffbfd976d-j6shb 1/1 Running 0 32s#DNS 解析测试kubectl create clusterrolebinding cluster-system-anonymous --clusterrolecluster-admin --usersystem:anonymouskubectl run -it --rm dns-test --imagebusybox:1.28.4 sh
If you dont see a command prompt, try pressing enter.
/ # nslookup kubernetes
Server: 10.0.0.2
Address 1: 10.0.0.2 kube-dns.kube-system.svc.cluster.localName: kubernetes
Address 1: 10.0.0.1 kubernetes.default.svc.cluster.localexit部署msater02
从 master01 节点上拷贝证书文件、各master组件的配置文件和服务管理文件到 master02 节点
scp -r /opt/etcd/ root20.0.0.71:/opt/
scp -r /opt/kubernetes/ root20.0.0.71:/opt
scp -r /root/.kube root20.0.0.71:/root
scp /usr/lib/systemd/system/{kube-apiserver,kube-controller-manager,kube-scheduler}.service root20.0.0.71:/usr/lib/systemd/system///修改配置文件kube-apiserver中的IP
vim /opt/kubernetes/cfg/kube-apiserverKUBE_APISERVER_OPTS--logtostderrfalse \
--v2 \
--log-dir/opt/kubernetes/logs \
--etcd-servershttps://20.0.0.70:2379,https://20.0.0.72:2379,https://20.0.0.73:2379 \
--bind-address20.0.0.71 \
--secure-port6443 \
--advertise-address20.0.0.71 \
--allow-privilegedtrue \
--service-cluster-ip-range10.0.0.0/24 \
--enable-admission-pluginsNamespaceLifecycle,LimitRanger,ServiceAccount,ResourceQuota,NodeRestriction \
--authorization-modeRBAC,Node \
--enable-bootstrap-token-authtrue \
--token-auth-file/opt/kubernetes/cfg/token.csv \
--service-node-port-range30000-50000 \
--kubelet-client-certificate/opt/kubernetes/ssl/apiserver.pem \
--kubelet-client-key/opt/kubernetes/ssl/apiserver-key.pem \
--tls-cert-file/opt/kubernetes/ssl/apiserver.pem \
--tls-private-key-file/opt/kubernetes/ssl/apiserver-key.pem \
--client-ca-file/opt/kubernetes/ssl/ca.pem \
--service-account-key-file/opt/kubernetes/ssl/ca-key.pem \
--service-account-issuerapi \
--service-account-signing-key-file/opt/kubernetes/ssl/apiserver-key.pem \
--etcd-cafile/opt/etcd/ssl/ca.pem \
--etcd-certfile/opt/etcd/ssl/server.pem \
--etcd-keyfile/opt/etcd/ssl/server-key.pem \
--requestheader-client-ca-file/opt/kubernetes/ssl/ca.pem \
--proxy-client-cert-file/opt/kubernetes/ssl/apiserver.pem \
--proxy-client-key-file/opt/kubernetes/ssl/apiserver-key.pem \
--requestheader-allowed-nameskubernetes \
--requestheader-extra-headers-prefixX-Remote-Extra- \
--requestheader-group-headersX-Remote-Group \
--requestheader-username-headersX-Remote-User \
--enable-aggregator-routingtrue \
--audit-log-maxage30 \
--audit-log-maxbackup3 \
--audit-log-maxsize100 \
--audit-log-path/opt/kubernetes/logs/k8s-audit.log......//在 master02 节点上启动各服务并设置开机自启
systemctl start kube-apiserver.service
systemctl enable kube-apiserver.service
systemctl start kube-controller-manager.service
systemctl enable kube-controller-manager.service
systemctl start kube-scheduler.service
systemctl enable kube-scheduler.service//查看node节点状态
ln -s /opt/kubernetes/bin/* /usr/local/bin/
kubectl get nodes
kubectl get nodes -o wide #-owide输出额外信息对于Pod将输出Pod所在的Node名//此时在master02节点查到的node节点状态仅是从etcd查询到的信息
而此时node节点实际上并未与master02节点建立通信连接因此需要使用一个VIP把node节点与master节点都关联起来负载均衡部署
配置nginx的官方在线yum源配置本地nginx的yum源
cat /etc/yum.repos.d/nginx.repo EOF
[nginx]
namenginx repo
baseurlhttp://nginx.org/packages/centos/7/$basearch/
gpgcheck0
EOFyum install nginx -y//修改nginx配置文件配置四层反向代理负载均衡指定k8s群集2台master的节点ip和6443端口
vim /etc/nginx/nginx.conf
stream {log_format main $remote_addr $upstream_addr - [$time_local] $status $upstream_bytes_sent;
#日志记录格式
#$remote_addr: 客户端的 IP 地址。
#$upstream_addr: 上游服务器的地址。
#[$time_local]: 访问时间使用本地时间。
#$status: HTTP 响应状态码。
#$upstream_bytes_sent: 从上游服务器发送到客户端的字节数。access_log /var/log/nginx/k8s-access.log main;upstream k8s-apiserver {server 20.0.0.70:6443;server 20.0.0.71:6443;}server {listen 6443;proxy_pass k8s-apiserver;}
}检查配置文件语法
nginx -t //启动nginx服务查看已监听6443端口
systemctl start nginx
systemctl enable nginx
netstat -natp | grep nginx //部署keepalived服务
yum install keepalived -y//修改keepalived配置文件
vim /etc/keepalived/keepalived.conf! Configuration File for keepalivedglobal_defs {notification_email {acassenfirewall.locfailoverfirewall.locsysadminfirewall.loc}notification_email_from Alexandre.Cassenfirewall.locsmtp_server 127.0.0.1smtp_connect_timeout 30router_id NGINX_MASTERvrrp_skip_check_adv_addr#vrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0
}vrrp_script check_nginx {script /etc/nginx/check_nginx.shinterval 5
}
vrrp_instance VI_1 {state MASTERinterface ens33virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {20.0.0.100/24}track_script {check_nginx}
}从
vim /etc/keepalived/keepalived.conf! Configuration File for keepalivedglobal_defs {notification_email {acassenfirewall.locfailoverfirewall.locsysadminfirewall.loc}notification_email_from Alexandre.Cassenfirewall.locsmtp_server 127.0.0.1smtp_connect_timeout 30router_id NGINX_BACKUPvrrp_skip_check_adv_addr#vrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0
}vrrp_script check_nginx {script /etc/nginx/check_nginx.shinterval 5
}
vrrp_instance VI_1 {state BACKUPinterface ens33virtual_router_id 51priority 90advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {20.0.0.100/24}track_script {check_nginx}
}创建nginx状态检查脚本
vim /etc/nginx/check_nginx.sh#!/bin/bash
/usr/bin/curl -I http://localhost /dev/null
if [ $? -ne 0 ];then
# /etc/init.d/keepalived stopsystemctl stop keepalived
fi chmod x /etc/nginx/check_nginx.sh//启动keepalived服务一定要先启动了nginx服务再启动keepalived服务
systemctl start keepalived
systemctl enable keepalived
ip addr #查看VIP是否生成修改node节点上的bootstrap.kubeconfig,kubelet.kubeconfig配置文件为VIP
cd /opt/kubernetes/cfg/
vim bootstrap.kubeconfig
server: https://192.168.233.100:6443vim kubelet.kubeconfig
server: https://192.168.233.100:6443vim kube-proxy.kubeconfig
server: https://192.168.233.100:6443//重启kubelet和kube-proxy服务
systemctl restart kubelet.service
systemctl restart kube-proxy.service
在 lb01 上查看 nginx 和 node 、 master 节点的连接状态
netstat -natp | grep nginxtcp 0 0 0.0.0.0:6443 0.0.0.0:* LISTEN 4141/nginx: master
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4141/nginx: master
tcp 0 0 20.0.0.74:43860 20.0.0.71:6443 ESTABLISHED 4142/nginx: worker
tcp 0 0 20.0.0.100:6443 20.0.0.73:47114 ESTABLISHED 4142/nginx: worker
tcp 0 0 20.0.0.74:43848 20.0.0.71:6443 ESTABLISHED 4142/nginx: worker
tcp 0 0 20.0.0.100:6443 20.0.0.72:50436 ESTABLISHED 4142/nginx: worker
tcp 0 0 20.0.0.100:6443 20.0.0.72:50444 ESTABLISHED 4143/nginx: worker
tcp 0 0 20.0.0.100:6443 20.0.0.72:50474 ESTABLISHED 4143/nginx: worker
tcp 0 0 20.0.0.74:43870 20.0.0.71:6443 ESTABLISHED 4143/nginx: worker
tcp 0 0 20.0.0.74:52370 20.0.0.70:6443 ESTABLISHED 4142/nginx: worker
tcp 0 0 20.0.0.100:6443 20.0.0.72:50446 ESTABLISHED 4142/nginx: worker
tcp 0 0 20.0.0.100:6443 20.0.0.72:50420 ESTABLISHED 4143/nginx: worker
tcp 0 0 20.0.0.100:6443 20.0.0.73:47112 ESTABLISHED 4142/nginx: worker
tcp 0 0 20.0.0.74:43842 20.0.0.71:6443 ESTABLISHED 4143/nginx: worker
tcp 0 0 20.0.0.100:6443 20.0.0.72:50438 ESTABLISHED 4142/nginx: worker
tcp 0 0 20.0.0.100:6443 20.0.0.73:47090 ESTABLISHED 4142/nginx: worker
tcp 0 0 20.0.0.100:6443 20.0.0.72:50448 ESTABLISHED 4143/nginx: worker
tcp 0 0 20.0.0.74:43838 20.0.0.71:6443 ESTABLISHED 4142/nginx: worker
tcp 0 0 20.0.0.74:43862 20.0.0.71:6443 ESTABLISHED 4143/nginx: worker
tcp 0 0 20.0.0.74:52372 20.0.0.70:6443 ESTABLISHED 4143/nginx: worker
tcp 0 0 20.0.0.74:52380 20.0.0.70:6443 ESTABLISHED 4142/nginx: worker
tcp 0 0 20.0.0.74:43852 20.0.0.71:6443 ESTABLISHED 4142/nginx: worker
tcp 0 0 20.0.0.74:52394 20.0.0.70:6443 ESTABLISHED 4143/nginx: worker
tcp 0 0 20.0.0.100:6443 20.0.0.73:47128 ESTABLISHED 4143/nginx: worker
tcp 0 0 20.0.0.100:6443 20.0.0.73:47116 ESTABLISHED 4143/nginx: worker
tcp 0 0 20.0.0.74:52358 20.0.0.70:6443 ESTABLISHED 4143/nginx: worker
tcp 0 0 20.0.0.74:52384 20.0.0.70:6443 ESTABLISHED 4142/nginx: worker
tcp 0 0 20.0.0.100:6443 20.0.0.73:47108 ESTABLISHED 4142/nginx: worker
tcp 0 0 20.0.0.100:6443 20.0.0.73:47106 ESTABLISHED 4142/nginx: worker
tcp 0 0 20.0.0.74:52362 20.0.0.70:6443 ESTABLISHED 4142/nginx: worker 部署 Dashboard
在 master01 节点上操作
#上传 recommended.yaml 文件到 /opt/k8s 目录中
cd /opt/k8s
vim recommended.yaml
#默认Dashboard只能集群内部访问修改Service为NodePort类型暴露到外部
kind: Service
apiVersion: v1
metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboardnamespace: kubernetes-dashboard
spec:ports:- port: 443targetPort: 8443nodePort: 30001 #添加type: NodePort #添加selector:k8s-app: kubernetes-dashboardkubectl apply -f recommended.yaml#创建service account并绑定默认cluster-admin管理员集群角色
kubectl create serviceaccount dashboard-admin -n kube-systemkubectl create clusterrolebinding dashboard-admin --clusterrolecluster-admin --serviceaccountkube-system:dashboard-admin#获取token值
kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk /dashboard-admin/{print $1})使用输出的token登录Dashboard
https://20.0.0.72:30001/#/login 文章转载自: http://www.morning.hrzymy.com.gov.cn.hrzymy.com http://www.morning.lpnpn.cn.gov.cn.lpnpn.cn http://www.morning.lkbyq.cn.gov.cn.lkbyq.cn http://www.morning.dcccl.cn.gov.cn.dcccl.cn http://www.morning.crdtx.cn.gov.cn.crdtx.cn http://www.morning.hkswt.cn.gov.cn.hkswt.cn http://www.morning.xxrwp.cn.gov.cn.xxrwp.cn http://www.morning.qmqgx.cn.gov.cn.qmqgx.cn http://www.morning.fsbns.cn.gov.cn.fsbns.cn http://www.morning.hmdn.cn.gov.cn.hmdn.cn http://www.morning.mtbsd.cn.gov.cn.mtbsd.cn http://www.morning.lrjtx.cn.gov.cn.lrjtx.cn http://www.morning.lzzqz.cn.gov.cn.lzzqz.cn http://www.morning.xzgbj.cn.gov.cn.xzgbj.cn http://www.morning.hrydl.cn.gov.cn.hrydl.cn http://www.morning.yhglt.cn.gov.cn.yhglt.cn http://www.morning.plqkz.cn.gov.cn.plqkz.cn http://www.morning.zcsch.cn.gov.cn.zcsch.cn http://www.morning.tpnxr.cn.gov.cn.tpnxr.cn http://www.morning.jrhcp.cn.gov.cn.jrhcp.cn http://www.morning.wxrbl.cn.gov.cn.wxrbl.cn http://www.morning.pljdy.cn.gov.cn.pljdy.cn http://www.morning.rbmm.cn.gov.cn.rbmm.cn http://www.morning.zpnfc.cn.gov.cn.zpnfc.cn http://www.morning.mqffm.cn.gov.cn.mqffm.cn http://www.morning.trfrl.cn.gov.cn.trfrl.cn http://www.morning.mtsgx.cn.gov.cn.mtsgx.cn http://www.morning.rkhhl.cn.gov.cn.rkhhl.cn http://www.morning.nfmlt.cn.gov.cn.nfmlt.cn http://www.morning.mgbcf.cn.gov.cn.mgbcf.cn http://www.morning.rqgbd.cn.gov.cn.rqgbd.cn http://www.morning.tkrwm.cn.gov.cn.tkrwm.cn http://www.morning.brld.cn.gov.cn.brld.cn http://www.morning.krywy.cn.gov.cn.krywy.cn http://www.morning.fpryg.cn.gov.cn.fpryg.cn http://www.morning.tnrdz.cn.gov.cn.tnrdz.cn http://www.morning.kstlm.cn.gov.cn.kstlm.cn http://www.morning.rgwz.cn.gov.cn.rgwz.cn http://www.morning.pfmsh.cn.gov.cn.pfmsh.cn http://www.morning.nsyzm.cn.gov.cn.nsyzm.cn http://www.morning.ctsjq.cn.gov.cn.ctsjq.cn http://www.morning.dbbcq.cn.gov.cn.dbbcq.cn http://www.morning.jmdpp.cn.gov.cn.jmdpp.cn http://www.morning.gjmll.cn.gov.cn.gjmll.cn http://www.morning.kcnjz.cn.gov.cn.kcnjz.cn http://www.morning.kxyqy.cn.gov.cn.kxyqy.cn http://www.morning.nlglm.cn.gov.cn.nlglm.cn http://www.morning.dcccl.cn.gov.cn.dcccl.cn http://www.morning.zsthg.cn.gov.cn.zsthg.cn http://www.morning.hmnhp.cn.gov.cn.hmnhp.cn http://www.morning.yzsdp.cn.gov.cn.yzsdp.cn http://www.morning.xxfxxf.cn.gov.cn.xxfxxf.cn http://www.morning.dskzr.cn.gov.cn.dskzr.cn http://www.morning.rqfnl.cn.gov.cn.rqfnl.cn http://www.morning.3ox8hs.cn.gov.cn.3ox8hs.cn http://www.morning.rdlxh.cn.gov.cn.rdlxh.cn http://www.morning.snbry.cn.gov.cn.snbry.cn http://www.morning.zrlms.cn.gov.cn.zrlms.cn http://www.morning.prmyx.cn.gov.cn.prmyx.cn http://www.morning.bfgpn.cn.gov.cn.bfgpn.cn http://www.morning.llthz.cn.gov.cn.llthz.cn http://www.morning.nba1on1.com.gov.cn.nba1on1.com http://www.morning.bfcxf.cn.gov.cn.bfcxf.cn http://www.morning.tnhqr.cn.gov.cn.tnhqr.cn http://www.morning.hclplus.com.gov.cn.hclplus.com http://www.morning.xckrj.cn.gov.cn.xckrj.cn http://www.morning.nyfyq.cn.gov.cn.nyfyq.cn http://www.morning.btypn.cn.gov.cn.btypn.cn http://www.morning.ljqd.cn.gov.cn.ljqd.cn http://www.morning.tsxg.cn.gov.cn.tsxg.cn http://www.morning.nhpgm.cn.gov.cn.nhpgm.cn http://www.morning.fqpyj.cn.gov.cn.fqpyj.cn http://www.morning.kdnbf.cn.gov.cn.kdnbf.cn http://www.morning.nzcys.cn.gov.cn.nzcys.cn http://www.morning.mqnbm.cn.gov.cn.mqnbm.cn http://www.morning.qtltg.cn.gov.cn.qtltg.cn http://www.morning.gqflj.cn.gov.cn.gqflj.cn http://www.morning.pjxw.cn.gov.cn.pjxw.cn http://www.morning.wtyqs.cn.gov.cn.wtyqs.cn http://www.morning.kdbcx.cn.gov.cn.kdbcx.cn