k8s series 22 calico初级(calico

「这是我参与11月更文挑战的第10天,活动详情查看:2021最后一次更文挑战」。

本文将介绐calicoctl命令工具的使用

安装

calicoctl工具,以二进制命令方式安装在主机中

1
2
3
js复制代码curl -o calicoctl -O -L  "https://github.com/projectcalico/calicoctl/releases/download/v3.20.0/calicoctl" 
mv calicoctl /usr/local/bin
chmod +x calicoctl

需要注意的是,版本必须一致,否则无法使用

使用

查看节点列表

1
2
3
4
js复制代码#查看节点简单信息
calicoctl get node
#查看节点详细信息,输出会很长,可以输出到文件再查看
calicoctl get node -o yaml

图片.png

查看节点状态

1
js复制代码calicoctl node status

全互联模式(node-to-node mesh)模式,节点状态都是正常的(up),路由连接都已经相互建立好了
图片.png

节点检查

检查当前节点各模块以及内核是否满足calico的安装要求

1
js复制代码calicoctl node checksystem

图片.png

节点诊断

执行诊断命令,会采集系统和calico相关日志,输出到一个文件

1
js复制代码calicoctl node diags

该命令虽然会报错,但是采集的日志实际上好了。直接查看红框目录下的诊断日志既可
图片.png

查看ip池

1
js复制代码calicoctl get ippool

在初始k8s集群没的指定cdir的网段,这里默认就是192.168.0.0/16,另外ipip模式,nat出口都是启用的,vxlan虚拟子网模式是关闭的
图片.png

ipam

ipam是calico的一个ip管理模块

查看ip的地址的总量和已经分配的ip详细信息

1
js复制代码calicoctl ipam show

图片.png

查看ipam当前的详细信息

1
js复制代码calicoctl ipam check

图片.png

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等还是其他的有效资源都可以查看,如果资源没有创建,返回是空

图片.png

元数据备份

在执行备份之前,需要有calicoctl对应的配置文件,另外在执行导出导入时,需要先加锁,导出导入成功后再解锁。

calicoctl配置文件默认在: /etc/calico/calicoctl.cfg,但是我们是二进制安装的,其实是没有的。需要自行创建

配置文件例子

根据自已的证书路径自行修改

1
2
3
4
5
6
7
8
js复制代码apiVersion: projectcalico.org/v3
kind: CalicoAPIConfig
metadata:
spec:
etcdEndpoints: https://etcd1:2379,https://etcd2:2379,https://etcd3:2379
etcdKeyFile: /etc/calico/key.pem
etcdCertFile: /etc/calico/cert.pem
etcdCACertFile: /etc/calico/ca.pem

数据导出

1
2
3
js复制代码calicoctl datastore migrate lock
calicoctl datastore migrate export
calicoctl datastore migrate unlock

数据导入

1
2
3
js复制代码calicoctl datastore migrate lock
calicoctl datastore migrate import
calicoctl datastore migrate unlock

本文转载自: 掘金

开发者博客 – 和开发相关的 这里全都有

0%