K8s 集群安装 CNI 网络插件

说明

官方文档:

https://docs.tigera.io/calico/latest/getting-started/kubernetes/self-managed-onprem/onpremises

安装

# 下载 calico.yaml
curl https://raw.githubusercontent.com/projectcalico/calico/v3.28.0/manifests/calico.yaml -O

# 安装 Calico
kubectl create -f calico.yaml

# 查看安装结果
# 以字符串 calico 开头的所有 pod 状态都为 Running 则说明安装成功
# 安装成功后所有节点状态应为 Ready
kubectl get pod -n kube-system -o wide
kubectl get node

排错

若出现镜像拉取失败,可根据如下步骤操作

Step 1 : 下载镜像

# 下载 GitHub release 中相应版本带镜像的包

https://github.com/projectcalico/calico/releases

Step 2 : 解压后上传镜像至服务器

Step 3 : 导入镜像(所有节点都执行)

# 查看所需镜像
grep -i "image:" calico.yaml
          image: docker.io/calico/cni:v3.28.0
          image: docker.io/calico/cni:v3.28.0
          image: docker.io/calico/node:v3.28.0
          image: docker.io/calico/node:v3.28.0
          image: docker.io/calico/kube-controllers:v3.28.0

# 获取 namespace
ctr namespace ls
NAME   LABELS 
k8s.io

# Containerd 导入镜像
# 根据 grep 结果可知安装 Calico 需要 cni、node、controllers 三个镜像
ctr -n k8s.io images import calico-cni.tar 
ctr -n k8s.io images import calico-node.tar 
ctr -n k8s.io images import calico-kube-controllers.tar

验证:

# 不出意外,成功镜像导入后 pod 将变成 Running
kubectl get pod -n kube-system -o wide

# Calico 安装成功后,node 状态为 Ready
kubectl get node

Last updated