一、部署flannel网络

(一)在Etcd中网络设置
1、在Etcd中网络设置
[root@k8s-master ~]# etcdctl--ca-file=/usr/local/kubernetes/ssl/ca.pem --cert-file=/usr/local/kubernetes/ssl/etcd.pem--key-file=/usr/local/kubernetes/ssl/etcd-key.pem --endpoints="https://192.168.1.1:2379,https://192.168.1.2:2379,https://192.168.1.3:2379" set /coreos.com/network/config '{"Network": "10.244.0.0/16", "Backend":{"Type": "vxlan"}}'

2、修改Flannel类型
[root@k8s-master ~]# etcdctl--ca-file=/usr/local/kubernetes/ssl/ca.pem --cert-file=/usr/local/kubernetes/ssl/etcd.pem--key-file=/usr/local/kubernetes/ssl/etcd-key.pem --endpoints="https://192.168.1.1:2379,https://192.168.1.2:2379,https://192.168.1.3:2379" set /coreos.com/network/config '{"Network": "10.244.0.0/16", "Backend":{"Type": " host-gw"}}'
3、查看网络设置
[root@k8s-master ~]# etcdctl--ca-file=/usr/local/kubernetes/ssl/ca.pem --cert-file=/usr/local/kubernetes/ssl/etcd.pem--key-file=/usr/local/kubernetes/ssl/etcd-key.pem --endpoints="https://192.168.1.1:2379,https://192.168.1.2:2379,https://192.168.1.3:2379" get /coreos.com/network/config '{"Network": "10.244.0.0/16", "Backend":{"Type": "vxlan"}}'
(二)部署flannel
1、下载flannel
[root@k8s-master ~]# wget https://github.com/coreos/flannel/releases/download/v0.11.0/flannel-v0.11.0-linux-amd64.tar.gz[root@k8s-master ~]# mkdir /usr/src/flannel[root@k8s-master ~]# tar -zxvfflannel-v0.11.0-linux-amd64.tar.gz -C /usr/src/flannel/[root@k8s-master ~]# cd/usr/src/flannel/[root@k8s-master flannel]# cp flanneldmk-docker-opts.sh /usr/local/kubernetes/bin/
2、创建flannel配置文件
[root@k8s-master ~]# vim/usr/local/kubernetes/conf/flanneld添加:FLANNEL_OPTIONS="--etcd-endpoints=https://192.168.1.1:2379,https://192.168.1.2:2379,https://192.168.1.3:2379\-etcd-cafile=/usr/local/kubernetes/ssl/ca.pem \-etcd-certfile=/usr/local/kubernetes/ssl/etcd.pem\-etcd-keyfile=/usr/local/kubernetes/ssl/etcd-key.pem \-etcd-prefix=/coreos.com/network"[root@k8s-master ~]# scp/usr/local/kubernetes/conf/flanneld 192.168.1.1:/usr/local/kubernetes/conf/[root@k8s-master ~]# scp/usr/local/kubernetes/conf/flanneld 192.168.1.2:/usr/local/kubernetes/conf/
3、创建flannel服务配置文件
[root@k8s-master ~]# vim/usr/lib/systemd/system/flanneld.service添加:[Unit]Description=Flanneld overlay address etcd agentAfter=network-online.target network.targetBefore=docker.service[Service]Type=notifyEnvironmentFile=-/usr/local/kubernetes/conf/flanneldExecStart=/usr/local/kubernetes/bin/flanneld--ip-masq $FLANNEL_OPTIONSExecStartPost=/usr/local/kubernetes/bin/mk-docker-opts.sh-k DOCKER_NETWORK_OPTIONS -d /run/flannel/subnet.envRestart=on-failure[Install]WantedBy=multi-user.target[root@k8s-master ~]# scp/usr/lib/systemd/system/flanneld.service 192.168.1.1:/usr/lib/systemd/system/[root@k8s-master ~]# scp/usr/lib/systemd/system/flanneld.service 192.168.1.2:/usr/lib/systemd/system/
4、预启动flannel
[root@k8s-master ~]# flanneld-etcd-cafile=/usr/local/kubernetes/ssl/ca.pem -etcd-certfile=/usr/local/kubernetes/ssl/etcd.pem -etcd-keyfile=/usr/local/kubernetes/ssl/etcd-key.pem -etcd-endpoints="https://192.168.1.1:2379,https://192.168.1.2:2379,https://192.168.1.3:2379"-etcd-prefix=/coreos.com/network

5、启动flannel服务
[root@k8s-master ~]# systemctl enableflanneld[root@k8s-master ~]# systemctl startflanneld
6、查看flannel服务状态
[root@k8s-master ~]# systemctl status flanneld

[root@k8s-master ~]# netstat -anpt |grep flanneld

7、验证flannel网络
(1)Master节点:
[root@k8s-master ~]# ip a[root@k8s-master ~]# ifconfig flannel.1

(2)Node-1节点:
[root@k8s-node-1 ~]# ip a[root@k8s-node-1 ~]# ifconfig flannel.1

(3)Node-2节点:
[root@k8s-node-2 ~]# ip a[root@k8s-node-2 ~]# ifconfig flannel.1

二、配置docker
1、配置docker服务使flannel应用到容器
[root@k8s-master ~]# vim/usr/lib/systemd/system/docker.service修改:#ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sockEnvironmentFile=/run/flannel/subnet.envExecStart=/usr/bin/dockerd -H fd://--containerd=/run/containerd/containerd.sock $DOCKER_NETWORK_OPTIONSExecReload=/bin/kill -s HUP $MAINPIDTimeoutSec=0RestartSec=2[root@k8s-master ~]# scp/usr/lib/systemd/system/docker.service 192.168.1.1:/usr/lib/systemd/system/[root@k8s-master ~]# scp/usr/lib/systemd/system/docker.service 192.168.1.2:/usr/lib/systemd/system/
2、重启Docker
[root@k8s-master ~]# systemctldaemon-reload[root@k8s-master ~]# systemctl restartdocker.service
3、验证:
(1)在k8s-master上:
[root@k8s-master ~]# ifconfig flannel.1[root@k8s-master ~]# ifconfig docker0

(2)在k8s-node-1上:
[root@k8s-node-1 ~]#ifconfig flannel.1[root@k8s-node-1 ~]#ifconfig docker0

(3)在k8s-node-2上:
[root@k8s-node-2 ~]#ifconfig flannel.1[root@k8s-node-2 ~]#ifconfig docker0

(4)连通性测试
[root@k8s-master ~]# ping 10.244.15.1[root@k8s-master ~]# ping 10.244.34

文章转载自dodo在线,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




