Kubernetes 1.24 及以上版本,Calico 网络插件的离线安装

CSDN 2024-07-04 16:07:03 阅读 87

对于 Kubernetes 1.24 及以上版本,Calico 网络插件的离线安装需要适应新的容器运行时环境,即 <code>containerd。以下是详细的步骤,包含如何下载和部署必要的文件和镜像。

1. 准备工作

下载 Calico 相关文件和镜像

在能够访问互联网的机器上进行以下准备工作:

下载 Calico 安装文件

从 Calico 的官方文档或 GitHub 仓库下载安装文件。Calico 提供了适用于不同 Kubernetes 版本的安装文件。

curl -O -L https://raw.githubusercontent.com/projectcalico/calico/v3.24.1/manifests/calico.yaml

下载必要的容器镜像

通过 ctr 命令下载所需的镜像:

ctr image pull docker.io/calico/cni:v3.24.1

ctr image pull docker.io/calico/pod2daemon-flexvol:v3.24.1

ctr image pull docker.io/calico/node:v3.24.1

ctr image pull docker.io/calico/kube-controllers:v3.24.1

ctr image pull docker.io/calico/typha:v3.24.1

保存容器镜像

将这些镜像保存为 tar 文件,以便后续传输到离线环境:

ctr image export calico-cni-v3.24.1.tar docker.io/calico/cni:v3.24.1

ctr image export calico-pod2daemon-flexvol-v3.24.1.tar docker.io/calico/pod2daemon-flexvol:v3.24.1

ctr image export calico-node-v3.24.1.tar docker.io/calico/node:v3.24.1

ctr image export calico-kube-controllers-v3.24.1.tar docker.io/calico/kube-controllers:v3.24.1

ctr image export calico-typha-v3.24.1.tar docker.io/calico/typha:v3.24.1

传输文件到离线环境

将下载的 calico.yaml 文件和保存的容器镜像 tar 文件传输到离线环境的主节点。

scp calico.yaml root@k8s-master01:/root/

scp calico-cni-v3.24.1.tar root@k8s-master01:/root/

scp calico-pod2daemon-flexvol-v3.24.1.tar root@k8s-master01:/root/

scp calico-node-v3.24.1.tar root@k8s-master01:/root/

scp calico-kube-controllers-v3.24.1.tar root@k8s-master01:/root/

scp calico-typha-v3.24.1.tar root@k8s-master01:/root/

2. 在离线环境中安装 Calico

在离线环境的主节点上执行以下步骤:

导入容器镜像

将传输到离线环境的 tar 文件导入到 containerd

ctr -n=k8s.io image import /root/calico-cni-v3.24.1.tar

ctr -n=k8s.io image import /root/calico-pod2daemon-flexvol-v3.24.1.tar

ctr -n=k8s.io image import /root/calico-node-v3.24.1.tar

ctr -n=k8s.io image import /root/calico-kube-controllers-v3.24.1.tar

ctr -n=k8s.io image import /root/calico-typha-v3.24.1.tar

修改 Calico YAML 文件(如果需要)

确保 Calico YAML 文件中使用的是本地镜像。如果原文件中引用了外部镜像地址,需要替换为本地镜像地址。

打开 calico.yaml 文件并检查 image 字段:

...

containers:

- name: calico-node

image: docker.io/calico/node:v3.24.1

- name: calico-kube-controllers

image: docker.io/calico/kube-controllers:v3.24.1

- name: calico-typha

image: docker.io/calico/typha:v3.24.1

...

确保镜像路径正确且与导入的镜像标签一致。

部署 Calico

使用 kubectl 命令部署 Calico:

kubectl apply -f /root/calico.yaml

验证安装

验证 Calico 组件是否已正确部署:

kubectl get pods -n kube-system

检查所有 Calico 相关的 Pod 是否处于 Running 状态。

总结

离线安装 Calico 网络插件需要在有互联网连接的环境中下载必要的安装文件和容器镜像,然后将这些文件和镜像传输到离线环境,并在离线环境中进行配置和部署。通过上述步骤,你可以在没有互联网连接的情况下成功安装和运行 Calico 网络插件。如果你在安装过程中遇到任何问题,可以通过调整 YAML 配置文件或检查容器镜像的正确性来解决。希望这些步骤对你有所帮助,如果有任何进一步的问题,请随时提出。



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。