二進(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
- github地址
https://github.com/projectcalico/calicoctl/releases - 文檔地址
下載 calico-etcd.yaml 配置文件因?yàn)閗8s使用的etcd 集群
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/*