工具介紹:
Calico的二進制程序文件calicoctl可以直接操作Calico存儲來查看,修改或配置Calico系統特性。
三種方式部署calicoctl:①二進制安裝;②docker安裝;③運行於kubernetes系統中
這里采用第一種方式:二進制安裝
官網:https://docs.projectcalico.org/v3.6/getting-started/calicoctl/install
測試環境:
同上一篇k8s集群環境,如下
| System | Hostname | IP | calicoctl位置 |
| CentOS 7.6 | k8s-master | 138.138.82.14 | 僅在master安裝該命令 |
| CentOS 7.6 | k8s-node1 | 138.138.82.15 | — |
| CentOS 7.6 | k8s-node2 | 138.138.82.16 | — |
具體步驟:
1. 下載二進制文件
[root@k8s-master ~]# wget https://github.com/projectcalico/calicoctl/releases/download/v3.5.4/calicoctl -O /usr/bin/calicoctl
[root@k8s-master ~]# chmod +x /usr/bin/calicoctl
2. 添加calicoctl配置文件
calicoctl通過讀寫calico的數據存儲系統(datastore)進行查看或者其他各類管理操作,通常,它需要提供認證信息經由相應的數據存儲完成認證。在使用Kubernetes API數據存儲時,需要使用類似kubectl的認證信息完成認證。它可以通過環境變量聲明的DATASTORE_TYPE和KUBECONFIG接入集群,例如以下命令格式運行calicoctl:
[root@k8s-master ~]# DATASTORE_TYPE=kubernetes KUBECONFIG=~/.kube/config calicoctl get nodes NAME k8s-master k8s-node1 k8s-node2
也可以直接將認證信息等保存於配置文件中,calicoctl默認加載 /etc/calico/calicoctl.cfg 配置文件讀取配置信息,如下所示:
[root@k8s-master ~]# cat /etc/calico/calicoctl.cfg apiVersion: projectcalico.org/v3 kind: CalicoAPIConfig metadata: spec: datastoreType: "kubernetes" kubeconfig: "/root/.kube/config"
[root@k8s-master ~]# calicoctl get nodes NAME k8s-master k8s-node1 k8s-node2
3. 測試calicoctl命令
[root@k8s-master ~]# calicoctl node status Calico process is running. IPv4 BGP status +---------------+-------------------+-------+----------+-------------+ | PEER ADDRESS | PEER TYPE | STATE | SINCE | INFO | +---------------+-------------------+-------+----------+-------------+ | 138.138.82.15 | node-to-node mesh | up | 09:03:56 | Established | | 138.138.82.16 | node-to-node mesh | up | 09:04:08 | Established | +---------------+-------------------+-------+----------+-------------+ IPv6 BGP status No IPv6 peers found.
[root@k8s-master ~]# calicoctl get ipPool -o yaml apiVersion: projectcalico.org/v3 items: - apiVersion: projectcalico.org/v3 kind: IPPool metadata: creationTimestamp: 2019-04-28T08:53:12Z name: default-ipv4-ippool resourceVersion: "1799" uid: 0df17422-6993-11e9-bde3-005056918222 spec: blockSize: 26 cidr: 192.168.0.0/16 ipipMode: Always natOutgoing: true nodeSelector: all() kind: IPPoolList metadata: ……
以上就是calicoctl命令的簡單安裝和測試。
結束.
