8、二進(jìn)制安裝K8s之部署CIN網(wǎng)絡(luò)

二進(jìn)制安裝K8s之部署CIN網(wǎng)絡(luò)

部署CIN網(wǎng)絡(luò)可以使用flannel或者calico,這里介紹使用calico ecd 方式部署。

1、下載calico二進(jìn)制安裝包
  • 創(chuàng)建所需目錄
mkdir -p /data/k8s/calico/{bin,config,logs}

  • Calico 網(wǎng)絡(luò)配置NetworkManager。

NetworkManager 操作默認(rèn)網(wǎng)絡(luò)命名空間中接口的路由表,其中 Calico veth 對(duì)被錨定以連接到容器。這會(huì)干擾 Calico 代理正確路由的能力。
在 at 創(chuàng)建以下配置文件/etc/NetworkManager/conf.d/calico.conf以防止 NetworkManager 干擾接口:

cat >/etc/NetworkManager/conf.d/calico.conf <<EOF
[keyfile]
unmanaged-devices=interface-name:cali*;interface-name:tunl*;interface-name:vxlan.calico
EOF

#防止 Linux conntrack 表空間不足
sysctl -w net.netfilter.nf_conntrack_max=1000000
echo "net.netfilter.nf_conntrack_max=1000000" >> /etc/sysctl.conf

curl https://docs.projectcalico.org/manifests/calico-etcd.yaml -o calico.yaml
2、修改配置文件

如果您使用的是 pod CIDR 192.168.0.0/16 要與k8s-集群的一致,在文件kube-apiserver.conf 的 --service-cluster-ip-rang 參數(shù)
。在ConfigMap命名中calico-config,將 的值設(shè)置為etcd_endpointsetcd 服務(wù)器的 IP 地址和端口。
提示:您可以etcd_endpoint使用逗號(hào)作為分隔符指定多個(gè)。

  • 鏡像最好改成私有倉(cāng)庫(kù),避免失敗
#鏡像最好改成私有倉(cāng)庫(kù):
          image: registry.com/public/docker.io/calico/cni:v3.19.1
          image: registry.com/public/docker.io/calico/pod2daemon-flexvol:v3.19.1
          image: registry.com/public/docker.io/calico/node:v3.19.1
          image: registry.com/public/docker.io/calico/kube-controllers:v3.19.1

  • 生成 連接 etcd 集群證書
cat /data/etcd/ssl/server-key.pem |base64 -w  0
 cat /data/etcd/ssl/server.pem |base64 -w  0
 cat /data/etcd/ssl/ca.pem |base64 -w 0
寫到:
metadata:
  name: calico-etcd-secrets
  namespace: kube-system
data:
  etcd-key:   #上面生成的server-key.pem結(jié)果
  etcd-cert:  #上面生成的server.pem結(jié)果
  etcd-ca:  #上面生成的ca.pem結(jié)果

  • 修改data: etcd 部分如下
data:
  # Configure this with the location of your etcd cluster.
  etcd_endpoints: "https://192.168.0.200:2379,https://192.168.0.201:2379,https://192.168.0.202:2379"
  etcd_ca: "/calico-secrets/etcd-ca"
  etcd_cert: "/calico-secrets/etcd-cert"
  etcd_key: "/calico-secrets/etcd-key"
  
  • etcd_endpoints etcd 集群地址,在

  • etcd_ca、etcd_cert、etcd_key 使用默認(rèn)即可

  • 修改網(wǎng)段
    關(guān)閉calico ipip方式

- name: CALICO_IPV4POOL_IPIP
  #value: "Always"
 value: "Never"
 
#CIN網(wǎng)段,要與k8s-集群的一致,在文件kube-apiserver.conf 的 --service-cluster-ip-rang 參數(shù)             
- name: CALICO_IPV4POOL_CIDR
value: "10.0.0.0/24"

3、配置好直接執(zhí)行
kubectl apply -f calico-etcd.yaml

4、查看
kubectl get pods -n kube-system

NAME                                       READY   STATUS    RESTARTS   AGE
calico-kube-controllers-567b6cf877-zjqvn   1/1     Running   0          29s
calico-node-699jj                          1/1     Running   0          29s

5、授權(quán)
kubectl create clusterrolebinding add-on-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:calico-kube-controllers


#如果要?jiǎng)h除calico網(wǎng)絡(luò):
kubectl delete -f calico-etcd.yaml
rm -rf /var/lib/calico/*

rm -rf  /etc/cni/net.d/*

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容