kubectl只開放了容器網絡定義,未做容器網絡實現,需要安裝第三方的容器網絡插件(CNI插件),容器網絡市場占有率最高的是Flannel,其次是Calico,本篇使用Flannel容器網絡插件。
【前期做准備,下載Flannel安裝包】:
Flannel下載地址:https://github.com/coreos/flannel/releases/
最新版是Flannel-v.0.12.0
解壓安裝包,建立Flannel軟連接 |
將下載后的安裝包 flannel-v0.12.0-linux-amd64.tar.gz 解壓到所有kubenetes工作節點下的【/opt/flannel-v.0.12.0】目錄。
mkdir -p /opt/flannel-v.0.12.0 tar xvf /tools/k8s/flannel-v0.12.0-linux-amd64.tar.gz -C /opt/flannel-v.0.12.0/ ln -s /opt/flannel-v.0.12.0/ /opt/flannel
拷貝ca證書及client證書到flannel安裝目錄 |
將【kube管理節點1】上創建的三個證書文件【ca.pem、client.pem、client-key.pem】拷貝到所有工作節點的【/opt/flannel-v.0.12.0/certs】目錄
mkdir /opt/flannel-v.0.12.0/certs scp 192.168.0.102:/opt/certs/ca.pem /opt/flannel-v.0.12.0/certs scp 192.168.0.102:/opt/certs/client.pem /opt/flannel-v.0.12.0/certs scp 192.168.0.102:/opt/certs/client-key.pem /opt/flannel-v.0.12.0/certs
創建啟動文件 |
【創建環境文件】
vi /opt/flannel-v.0.12.0/subnet.env
FLANNEL_NETWORK=172.17.0.0/16 FLANNEL_SUBNET=172.17.106.1/24 FLANNEL_MTU=1500 FLANNEL_IPMASQ=FALSE
【創建flanneld.sh啟動文件】
如果etcd使用http協議(無證書)的情況,使用下面這樣配置
vi /opt/flannel/flanneld.sh
#!/bin/sh ./flanneld \ --public-ip=192.168.0.106 \ --etcd-endpoints=http://192.168.0.102:2379,http://192.168.0.103:2379,http://192.168.0.104:2379 \ --iface=ens33 \ --subnet-file=./subnet.env \ --healthz-port=2401
--iface=ens33 是網卡名,根據實際網卡名填寫
如果etcd使用https協議(有證書)的情況,使用下面這樣配置
vi /opt/flannel/flanneld.sh
#!/bin/sh ./flanneld \ --public-ip=192.168.0.106 \ --etcd-endpoints=https://192.168.0.102:2379,https://192.168.0.103:2379,https://192.168.0.104:2379 \ --etcd-keyfile=./certs/client-key.pem \ --etcd-certfile=./certs/client.pem \ --etcd-cafile=./certs/ca.pem \ --iface=ens33 \ --subnet-file=./subnet.env \ --healthz-port=2401
--iface=ens33 是網卡名,根據實際網卡名填寫
給flannel.sh加執行權限
chmod +x /opt/flannel/flanneld.sh
創建日志目錄
mkdir -p /data/logs/flanneld
在etcd上創建flannel網絡節點 |
進入任何一個etcd節點服務器。
切換到 etcd01節點服務器,切換到IP為【192.168.0.102】的節點,添加flannel的網絡配置數據到etcd。
先查看etcdl的管理工具etcdctl是否有安裝:
which etcdctl
說明有安裝etcdctl工具。
添加flannel網絡配置數據到etcd
etcdctl put /coreos.com/network/config '{"Network": "172.17.0.0/16", "Backend": {"Type": "host-gw"}}'
查看剛才添加的數據
etcdctl get /coreos.com/network/config
執行啟勸文件直接啟動flannel |
使用啟動文件啟動flannel,查看啟動效果:
cd /opt/flannel
./flanneld.sh