目录

 


一 部署flannel

1.1 安装flannel

kubernetes 要求集群内各节点(包括 master 节点)能通过 Pod 网段互联互通。flannel 使用 vxlan 技术为各节点创建一个可以互通的 Pod 网络,使用的端口为 UDP 8472。
 
flanneld 第一次启动时,从 etcd 获取配置的 Pod 网段信息,为本节点分配一个未使用的地址段,然后创建 flannedl.1 网络接口(也可能是其它名称,如 flannel1 等)。
 
flannel 将分配给自己的 Pod 网段信息写入 /run/flannel/docker 文件,docker 后续使用这个文件中的环境变量设置 docker0 网桥,从而从这个地址段为本节点的所有 Pod 容器分配 IP。
更多flannel参考:《008.Docker Flannel+Etcd分布式网络部署》。
复制代码
  1 [root@k8smaster01 ~]# cd /opt/k8s/work/  2 [root@k8smaster01 work]# mkdir flannel  3 [root@k8smaster01 work]# wget https://github.com/coreos/flannel/releases/download/v0.11.0/flannel-v0.11.0-linux-amd64.tar.gz  4 [root@k8smaster01 work]# tar -xzvf flannel-v0.11.0-linux-amd64.tar.gz -C flannel
复制代码
 

1.2 分发flannel

复制代码
  1 [root@k8smaster01 ~]# cd /opt/k8s/work  2 [root@k8smaster01 work]# source /opt/k8s/bin/environment.sh  3 [root@k8smaster01 work]# for master_ip in ${MASTER_IPS[@]}  4   do  5     echo ">>> ${master_ip}"  6     scp flannel/{flanneld,mk-docker-opts.sh} root@${master_ip}:/opt/k8s/bin/  7     ssh root@${master_ip} "chmod +x /opt/k8s/bin/*"  8   done
复制代码
 

1.3 创建flannel证书和密钥

复制代码
  1 [root@k8smaster01 ~]# cd /opt/k8s/work  2 [root@k8smaster01 work]# cat > flanneld-csr.json <<EOF  3 {  4     "CN": "flanneld",  5     "