node節點需要安裝flannel網絡插件才能保證所有的pod在一個局域網內通信,直接使用yum安裝即可,版本是0.7.1.
1、安裝flannel插件:
注意是2個node節點都需要安裝,都需要修改service文件和配置文件。
yum install flannel -y
2、修改service文件/usr/lib/systemd/system/flanneld.service其內容為:
[Unit] Description=Flanneld overlay address etcd agent After=network.target After=network-online.target Wants=network-online.target After=etcd.service Before=docker.service [Service] Type=notify EnvironmentFile=/etc/sysconfig/flanneld EnvironmentFile=-/etc/sysconfig/docker-network ExecStart=/usr/bin/flanneld-start \ -etcd-endpoints=${FLANNEL_ETCD_ENDPOINTS} \ -etcd-prefix=${FLANNEL_ETCD_PREFIX} \ $FLANNEL_OPTIONS ExecStartPost=/usr/libexec/flannel/mk-docker-opts.sh -k DOCKER_NETWORK_OPTIONS -d /run/flannel/docker Restart=on-failure [Install] WantedBy=multi-user.target RequiredBy=docker.service
提示:service文件中所有的變量參數都是讀取相應的配置文件里面的,所有要保證前后對應。
修改其配置文件/etc/sysconfig/flanneld 內容如下:
# Flanneld configuration options # etcd url location. Point this to the server where etcd runs FLANNEL_ETCD_ENDPOINTS="https://10.10.90.105:2379,https://10.10.90.106:2379,https://10.10.90.107:2379" # etcd config key. This is the configuration key that flannel queries # For address range assignment #FLANNEL_ETCD_PREFIX="/atomic.io/network" FLANNEL_ETCD_PREFIX="/kube-centos/network" # Any additional options that you want to pass #FLANNEL_OPTIONS="" FLANNEL_OPTIONS="-etcd-cafile=/etc/kubernetes/ssl/ca.pem -etcd-certfile=/etc/kubernetes/ssl/kubernetes.pem -etcd-keyfile=/etc/kubernetes/ssl/kubernetes-key.pem"
以上2步是2個node節點都需要做的。
3、在etcd中常見網絡配置信息
etcdctl --endpoints=https://10.10.90.105:2379,https://10.10.90.106:2379,https://10.10.90.107:2379 \ --ca-file=/etc/kubernetes/ssl/ca.pem \ --cert-file=/etc/kubernetes/ssl/kubernetes.pem \ --key-file=/etc/kubernetes/ssl/kubernetes-key.pem \ mkdir /kube-centos/network #上下是2條命令,在任何節點上創建都行,因為etcd是集群的。 etcdctl --endpoints=https://10.10.90.105:2379,https://10.10.90.106:2379,https://10.10.90.107:2379 \ --ca-file=/etc/kubernetes/ssl/ca.pem \ --cert-file=/etc/kubernetes/ssl/kubernetes.pem \ --key-file=/etc/kubernetes/ssl/kubernetes-key.pem \ mk /kube-centos/network/config '{"Network":"172.30.0.0/16","SubnetLen":24,"Backend":{"Type":"host-gw"}}'
4、啟動flannel服務
systemctl daemon-reload
systemctl enable flanneld
systemctl start flanneld
systemctl status flanneld
5、核對相關配置信息:
#先聲明個endpoint變量,后邊好調用
[root@c7test_node1 ~]#ETCD_ENDPOINTS='https://10.10.90.105:2379,https://10.10.90.106:2379,https://10.10.90.107:2379'
[root@c7test_node1 ~]# etcdctl --endpoints=${ETCD_ENDPOINTS} \ --ca-file=/etc/kubernetes/ssl/ca.pem \ --cert-file=/etc/kubernetes/ssl/kubernetes.pem \ --key-file=/etc/kubernetes/ssl/kubernetes-key.pem \ ls /kube-centos/network/subnets
#輸出 /kube-centos/network/subnets/172.30.87.0-24 /kube-centos/network/subnets/172.30.92.0-24 #說明,有幾個node就有幾個子網絡,就有幾條記錄,我是2個node,分別安裝了flannel插件
[root@c7test_node1 ~]# etcdctl --endpoints=${ETCD_ENDPOINTS} \
--ca-file=/etc/kubernetes/ssl/ca.pem \
--cert-file=/etc/kubernetes/ssl/kubernetes.pem \
--key-file=/etc/kubernetes/ssl/kubernetes-key.pem \
get /kube-centos/network/config
#輸出
{"Network":"172.30.0.0/16","SubnetLen":24,"Backend":{"Type":"host-gw"}}
#此處是查看主網絡配置
etcdctl --endpoints=${ETCD_ENDPOINTS} --ca-file=/etc/kubernetes/ssl/ca.pem --cert-file=/etc/kubernetes/ssl/kubernetes.pem --key-file=/etc/kubernete s/ssl/kubernetes-key.pem get /kube-centos/network/subnets/172.30.92.0-24
#輸出
{"PublicIP":"10.10.90.106","BackendType":"vxlan","BackendData":{"VtepMAC":"26:af:ac:26:47:ad"}}
etcdctl --endpoints=${ETCD_ENDPOINTS} --ca-file=/etc/kubernetes/ssl/ca.pem --cert-file=/etc/kubernetes/ssl/kubernetes.pem --key-file=/etc/kubernete s/ssl/kubernetes-key.pem get /kube-centos/network/subnets/172.30.87.0-24
#輸出
{"PublicIP":"10.10.90.107","BackendType":"vxlan","BackendData":{"VtepMAC":"82:6f:58:94:9f:59"}}
如有以上輸出即代表flannel插件安裝配置成功,下一篇文章開始安裝node節點。