參考: [ Kubernetes 權威指南 ]
<br>html
Kubernetes 集羣搭建能夠參考 [ Kubernetes : 多節點 k8s 集羣實踐 ] <br>node
在多個 Node 組成的 Kubernetes 集羣內, Kubernetes 自己不會對跨主機容器網絡進行設置. flannel 就是解決跨主機容器間網絡互通的需求. <br><br>docker
Server Listapi
節點名稱 | 節點 IP |
---|---|
k8s-master | 10.10.10.10 |
k8s-node1 | 10.10.10.11 |
k8s-node2 | 10.10.10.12 |
<br>服務器
節點服務說明網絡
Master : etcd , kube-apiserver , kube-controller-manager, kube-scheduler.架構
Node : docker, kubelet, kube-proxy <br><br>spa
flannel 安裝於 kubernetes node 服務器上.rest
安裝 flannelcode
yum install flannel ln -sv /usr/libexec/flannel/mk-docker-opts.sh /usr/bin
<br>
配置: /etc/sysconfig/flanneld
須要鏈接位於 master 上的 etcd 服務:
FLANNEL_ETCD_ENDPOINTS="http://10.10.10.10:2379" FLANNEL_ETCD_PREFIX="/myk8s/network" # myk8s 能夠隨意定義
<br>
在 etcd 中添加網絡配置記錄
etcdctl set /myk8s/network/config '{"Network":"10.1.0.0/16"}'
<br>
修改文件: /usr/lib/systemd/system/flanneld.service
[Unit] Description=Flanneld overlay address etcd agent After=network.target After=network-online.target #After=etcd.service # 不在本機部署 etcd Wants=network-online.target Before=docker.service [Service] Type=notify EnvironmentFile=/etc/sysconfig/flanneld EnvironmentFile=-/etc/sysconfig/docker-network ExecStart=/usr/bin/flanneld-start $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 WantedBy=docker.service
<br>
服務啓動
systemctl stop docker systemctl start flanneld
<br>
配置 Docker 網橋
mk-docker-opts.sh -i source /run/flannel/subnet.env ifconfig docker0 ${FLANNEL_SUBNET}
<br>
重啓服務
systemctl start docker systemctl restart kubelet systemctl restart kube-proxy