k8s 离线安装calico

lkflxy 2024-08-01 14:07:03 阅读 67

k8s安装calico的命令是

<code>curl -L https://projectcalico.docs.tigera.io/manifests/calico.yaml -O

kubectl apply -f calico.yaml

但是在pull calico的镜像时,由于一些网络原因,可能会导致image pull失败的错误。

可以尝试离线安装calico, 具体步骤是

1. 去github上面下载自己所需的calico离线包,项目地址:

https://github.com/projectcalico/calico

 2. 假设要安装最新版本v3.28.0,首先可以下载这个版本的calico.yaml,具体命令是

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

3. 下载完成之后可以通过calico.yaml查看需要安装哪些离线包,命令是:

$ cat calico.yaml | grep image

image: docker.io/calico/cni:v3.28.0

imagePullPolicy: IfNotPresent

image: docker.io/calico/cni:v3.28.0

imagePullPolicy: IfNotPresent

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

imagePullPolicy: IfNotPresent

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

imagePullPolicy: IfNotPresent

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

imagePullPolicy: IfNotPresent

4. 通过上述命令,查看到需要安装calico-cni.tar, calico-kube-controllers.tar 和 calico-node.tar三个包,然后需要将这三个包导入到k8s的命名空间中

查询命名空间的命令是

$ sudo ctr namespace ls

NAME LABELS

default

k8s.io

moby

k8s的命名空间是k8s.io

使用导入命令将这三个包导入到k8s的命名空间中:

sudo ctr -n k8s.io images import calico-cni.tar

sudo ctr -n k8s.io images import calico-kube-controllers.tar

sudo ctr -n k8s.io images import calico-node.tar

 5. 导入之后就可以apply calico.yaml 文件了

kubectl apply -f calico.yaml

6. 导入之后查看calico的pod,发现calico和coredns已经起来了

$ kubectl get pods -n kube-system

NAME READY STATUS RESTARTS AGE

calico-kube-controllers-8d76c5f9b-brv86 1/1 Running 0 22h

calico-node-hxks2 1/1 Running 0 22h

coredns-66f779496c-9hqsx 1/1 Running 0 23h

coredns-66f779496c-rcc74 1/1 Running 0 23h

etcd-kevin-pc 1/1 Running 4 (28m ago) 23h

kube-apiserver-kevin-pc 1/1 Running 4 (28m ago) 23h

kube-controller-manager-kevin-pc 1/1 Running 4 (28m ago) 23h

kube-proxy-gglh4 1/1 Running 1 (28m ago) 23h

kube-scheduler-kevin-pc 1/1 Running 4 (28m ago) 23h

至此安装完成。



声明

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