calicoctl工具部署-k8s中的pod的方式

发布时间 2023-08-01 11:39:00作者: 安大

1、概述

 

本文档介绍的是将calicoctl工具,以pod的方式,部署在k8s集群中

2、部署过程

 

2.1 下载calicoctl工具的镜像、上传到本地的镜像仓库中

本次使用的版本是:calico/ctl:v3.21.4

这个版本和当前运行的calico-node是一个版本(必须一致,包括后面的小版本

 

拉取镜像

docker pull calico/ctl:v3.21.4

说明:拉取镜像的是可以上网的环境,比如,本地的virtulbox虚拟机

 

将镜像推送到本地的镜像仓库

docker tag calico/ctl:v3.21.4 172.20.58.152/kubernetes/calico/ctl:v3.21.4
docker push 172.20.58.152/kubernetes/calico/ctl:v3.21.4

 

 

推送到本地仓库后,用于在没有联网的主机上进行部署

 

2.2、下载对应版本的yaml配置文件

 

下载地址:https://docs.tigera.io/archive/v3.21/maintenance/clis/calicoctl/install#install-calicoctl-as-a-kubernetes-pod

 

 

数据存储用的是etcd就选择etcd的yaml,数据存储是kubernetes的选择下面的那个yaml

 

具体的是哪个存储,可以在calico-node部署的yaml中,找到:

 

本次使用的是kubernetes api数据存储的yaml

 

下载到本地。

 

2.3、修改其中的镜像tag信息

 

将镜像的信息,修改为刚刚推送到本地的tag信息

 

2.4、在k8s中进行部署

 

将calicoctl的yaml文件上传的k8s的master服务器上,执行下面的命令

kubectl apply -f calicoctl_v3.21.4.yaml

 

 

查看pod的状态

 

运行状态是Running表示运行成功

[root@nccztsjb-node-23 yamls]# kubectl get pod -n kube-system | grep calicoctl
calicoctl                                  1/1     Running   0               65s
[root@nccztsjb-node-23 yamls]# 
 

 

2.5、查询calico node的状态

 

OK,calicoctl工具部署之后,使用这个工具查询calico集群的状态

kubectl exec -ti -n kube-system calicoctl -- /calicoctl get nodes

 

 

有如下的输出,说明calicoctl工具部署OK

[root@nccztsjb-node-23 yamls]# kubectl exec -ti -n kube-system calicoctl -- /calicoctl get nodes
NAME               
nccztsjb-node-23   
nccztsjb-node-24   
nccztsjb-node-25   

[root@nccztsjb-node-23 yamls]# 

 

 

查看节点的详细状态

kubectl exec -ti -n kube-system calicoctl -- /calicoctl get nodes -o wide

 

 

这样,就可以看到calico node节点的对应的IP地址了

[root@nccztsjb-node-23 yamls]# kubectl exec -ti -n kube-system calicoctl -- /calicoctl get nodes -o wide
NAME               ASN       IPV4              IPV6   
nccztsjb-node-23   (64512)   172.20.58.83/24          
nccztsjb-node-24   (64512)   172.20.58.65/24          
nccztsjb-node-25   (64512)   172.20.58.18/24