「这是我参与11月更文挑战的第10天,活动详情查看:2021最后一次更文挑战」。
本文将介绐calicoctl命令工具的使用
安装
calicoctl工具,以二进制命令方式安装在主机中
1 | js复制代码curl -o calicoctl -O -L "https://github.com/projectcalico/calicoctl/releases/download/v3.20.0/calicoctl" |
需要注意的是,版本必须一致,否则无法使用
使用
查看节点列表
1 | js复制代码#查看节点简单信息 |
查看节点状态
1 | js复制代码calicoctl node status |
全互联模式(node-to-node mesh)模式,节点状态都是正常的(up),路由连接都已经相互建立好了
节点检查
检查当前节点各模块以及内核是否满足calico的安装要求
1 | js复制代码calicoctl node checksystem |
节点诊断
执行诊断命令,会采集系统和calico相关日志,输出到一个文件
1 | js复制代码calicoctl node diags |
该命令虽然会报错,但是采集的日志实际上好了。直接查看红框目录下的诊断日志既可
查看ip池
1 | js复制代码calicoctl get ippool |
在初始k8s集群没的指定cdir的网段,这里默认就是192.168.0.0/16,另外ipip模式,nat出口都是启用的,vxlan虚拟子网模式是关闭的
ipam
ipam是calico的一个ip管理模块
查看ip的地址的总量和已经分配的ip详细信息
1 | js复制代码calicoctl ipam show |
查看ipam当前的详细信息
1 | js复制代码calicoctl ipam check |
ipam网络管理配置
释放ip地址,只会释放已经没有使有的端点ip,已经在使用的不会释放,此命令慎用
1 | js复制代码calicoctl ipam release --ip=192.168.1.2 |
允许借用ip
1 | js复制代码calicoctl ipam configure --strictaffinity=true |
网络资源管理
创建一个新网络
因为我们安装calico时默认都创建好了,所以不需要动,基本上不需要人工干预
1 | js复制代码calicoctl create -f xxx.json |
查看网络资源信息
过滤出calico创建的资源
1 | js复制代码calicoctl get profile | grep calico |
查看资源详细
1 | js复制代码calicoctl get profile projectcalico-default-allow -o json |
替换网络资源
就是更新已经创建好的资源,不清楚配置前不能随意改动
1 | js复制代码calicoctl replace -f xxxx2.json |
apply
综合了 create 和 replace 命令。没有资源时就创建,有资源时就替换。和kubectl 的appley 技术相似
删除网络资源
慎用,,执行可能会导致集群崩溃
1 | js复制代码calicoctl delete profile xxxxxx |
查看get
get命令 除了node,profile等还是其他的有效资源都可以查看,如果资源没有创建,返回是空
元数据备份
在执行备份之前,需要有calicoctl对应的配置文件,另外在执行导出导入时,需要先加锁,导出导入成功后再解锁。
calicoctl配置文件默认在: /etc/calico/calicoctl.cfg,但是我们是二进制安装的,其实是没有的。需要自行创建
配置文件例子
根据自已的证书路径自行修改
1 | js复制代码apiVersion: projectcalico.org/v3 |
数据导出
1 | js复制代码calicoctl datastore migrate lock |
数据导入
1 | js复制代码calicoctl datastore migrate lock |
本文转载自: 掘金