1. 程式人生 > 實用技巧 >二進位制部署k8s叢集(8):安裝容器網路外掛Flannel

二進位制部署k8s叢集(8):安裝容器網路外掛Flannel

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 是網絡卡名,根據實際網絡卡名填寫