kubernetes集群安装指南:法兰绒网络插件部署

  

法兰绒是参股了阵营里标准的网络插件,在没有严格的网络的要求下,它通常作为kubernetes集群里网络互联比较常用的方案,当然还有其他网络方案,比如棉布,编织,mxvlan等等,这里主要使用到法兰绒作为kubernetes的网络方案;

  

1部署准备

  

kubernetes要求集群内各节点(包括主节点)能通过舱网段互联互通.flannel使用vxlan技术为各节点创建一个可以互通的豆荚网络,使用的端口为UDP 8472(需要开放该端口,如公有云AWS等)。

  

flanneld第一次启动时,从etcd获取配置的豆荚网段信息,为本节点分配一个未使用的地址段,然后创建flannedl。1网络接口(也可能是其它名称,如flannel1等)。

  

法兰绒将分配给自己的豆荚网段信息写入/运行/法兰绒/码头工人文件,码头工人后续使用这个文件中的环境变量设置docker0网桥,从而从这个地址段为本节点的所有舱容器分配IP。

  
环境变量定义h5> <代码类=" language-shell "> # # # # # # # # # # # # # # # # # # # #变量参数设置# # # # # # # # # # # # # # # # # # # # # #   FLANNEL_INSTALL_PATH=/数据/应用程序/美丽/网络/法兰绒   软件=/根/软件   VERSION=v0.11.0   包=法兰绒- {VERSION} -linux-amd64.tar.gz美元   DOWNLOAD_URL=https://github.com/devops-apps/download/raw/master/network/美元包   ETCD_ENPOINTS=https://10.10.10.22:2379, https://10.10.10.23:2379, https://10.10.10.24:2379   FLANNEL_ETCD_PREFIX=/美丽/网络   CA_DIR=/etc/美丽/ssl   NETWORK_SUBNET=172.16.0.0/20   IFACE=eth0   
1.2下载和分发kubernetes二进制文件
  

登陆devops机器,访问法兰绒github官方地址下载稳定的缴款包至本机;

  
 <代码类=" language-shell "> wget DOWNLOAD_URL - p美元软件 
  

将法兰绒软件包分发到集群所有节点服务器;

  
 <代码类=" language-shell "> sudo ansible master_k8s_vgs - m副本——“src=https://www.yisu.com/zixun/{软件}/美元包dest=${软件}/? b
  sudo ansible worker_k8s_vgs - m副本——“src=https://www.yisu.com/zixun/{软件}/美元包dest=${软件}/? b  
  

2安装法兰绒网络插件

  
2.1安装法兰绒二进制文件
  
 <代码类=" language-shell "> # # # 1。检查是否安装目录中存在。
  如果[!- d $ FLANNEL_INSTALL_PATH/bin);然后
  mkdir - p FLANNEL_INSTALL_PATH美元/bin
  fi
  
  # # # 2。安装二进制的法兰绒。
  如果[!- f”软件/法兰绒- {VERSION} -linux-amd64.tar美元。广州”);然后
  ,wget DOWNLOAD_URL - p软件比美元的在/tmp/安装。日志2祝辞,1
  fi
  cd $软件,,焦油-xzf法兰绒- {VERSION} -linux-amd64.tar美元。广州- c。/cp fp ${软件}/{flanneld mk-docker-opts。sh} $ {FLANNEL_INSTALL_PATH}/bin
  ln科幻$ {FLANNEL_INSTALL_PATH}/bin/{flanneld mk-docker-opts。sh}/usr/local/bin
  chmod - r 755美元FLANNEL_INSTALL_PATH  
  
2.3分发证书文件
  
 <代码类=" language-shell "> cd $ {CA_DIR}
  sudo ansible master_k8s_vgs - m副本——“src=https://www.yisu.com/zixun/ca.pem dest=$ {CA_DIR}/? b
  sudo ansible master_k8s_vgs - m副本——“src=https://www.yisu.com/zixun/flannel.pem dest=$ {CA_DIR}/? b
  sudo ansible master_k8s_vgs - m副本——“src=https://www.yisu.com/zixun/flannel-key.pem dest=$ {CA_DIR}/? b  
  
      <李>法兰绒开启了HTTPS访问所以需要证书支持,李   <李>法兰绒不需要访问apiserver,因此不需kubeconfig文件认证;李   
  
2.4向etcd写入集群Pod网段信息h5> <代码类=" language-shell "> # # #创建网络子网的法兰绒。=$ ETCD_ENPOINTS \ etcdctl——端点   ——ca-file=$ {CA_DIR}/ca。pem \   ——cert-file=$ {CA_DIR}/etcd。pem \   ——密钥文件=$ {CA_DIR}/etcd-key。pem \   mkdir FLANNEL_ETCD_PREFIX美元=$ ETCD_ENPOINTS \ etcdctl——端点   ——ca-file=$ {CA_DIR}/ca。pem \   ——cert-file=$ {CA_DIR}/etcd。pem \   ——密钥文件=$ {CA_DIR}/etcd-key。pem \   可$ {FLANNEL_ETCD_PREFIX}/config \   “{”网络”:“$ {NETWORK_SUBNET}”,“SubnetLen”: 24日“后端”:{“类型”:“类型”美元}}”   
      <李> flanneld当前版本(v0.11.0)不支持etcd v3,故使用etcd v2 API写入配置关键和网段数据,李   <李>写入的豆荚网段$ {CLUSTER_CIDR}地址段(如/16)必须小于SubnetLen,必须与kube-controller-manager的——cluster-cidr参数值一致,李   
  
2.5创建法兰绒启动服务h5> <代码>猫在/usr/lib/systemd/系统/flanneld.service<& lt; EOF   (单位)   描述=Flanneld覆盖地址etcd代理=network.target后=network-online.target后   希望=network-online.target=etcd.service后=docker.service之前   (服务)   类型=通知   ExecStart=$ {FLANNEL_INSTALL_PATH}/bin/flanneld \ \   -etcd-cafile=$ {CA_DIR}/ca。pem \ \   -etcd-certfile=$ {CA_DIR}/法兰绒。pem \ \   -etcd-keyfile=$ {CA_DIR}/flannel-key。pem \ \   -etcd-endpoints=$ {ETCD_ENPOINTS} \ \   -etcd-prefix=$ {FLANNEL_ETCD_PREFIX} \ \   IFACE=$ {IFACE} \ \   -ip-masq   ExecStartPost=$ {FLANNEL_INSTALL_PATH}/bin/mk-docker-opts。上海\ \   - k DOCKER_NETWORK_OPTIONS - d/跑步/法兰绒/码头工人   重启=总   RestartSec=5   StartLimitInterval=0   (安装)   WantedBy=multi-user.target   RequiredBy=docker.service   EOF

kubernetes集群安装指南:法兰绒网络插件部署