这篇文章主要介绍calicoctl命令怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
成都创新互联公司专注于大兴网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供大兴营销型网站建设,大兴网站制作、大兴网页设计、大兴网站官网定制、微信小程序开发服务,打造大兴网络公司原创品牌,更为您提供大兴网站排名全网营销落地服务。
用法
create
创建一个网络资源。比如说我们要创建一个“profile” 的网络资源,那么先以json或者yaml的文件格式定义这个profile的属性,然后使用-f参数来指定。例如,属性文件名为profile1.json,其内容为:
{ "kind": "profile", "apiVersion": "v1", "metadata": { "name": "calico-test", "tags": [ "calico-test" ] }, "spec": { "ingress": [ { "action": "allow", "source": { "tag": "calico-test" }, "destination": {} } ], "egress": [ { "action": "allow", "source": {}, "destination": {} } ] } }
使用calicoctl命令创建profile:
# calicoctl create -f profile1.json Successfully created 1 'profile' resource(s)
另外,还可以使用-c选项来指定配置文件。
ps:这里需要注意的是,创建了calico网络之后,使用同一个calico网络的容器之间可以实现网络互通。但如果想让一个外部的节点也可以和这个calico网络互通,那么需要进行一些修改,在profile的spec.ingress中添加一个配置。
{ "action": "allow", "source": { "nets": [ "115.105.115.0/24" ] }, "destination": {} }
然后,再通过下面会讲到的“calicoctl replace”命令替换profile。这样,ip段位于"115.105.115.0/24"的docker host便可以访问该calico网络下的容器。
get
获取一个网络资源的信息。
这里我们也以上面创建的profile为例。
# calicoctl get profile calico-test -o json [ { "kind": "profile", "apiVersion": "v1", "metadata": { "name": "calico-test", "tags": [ "calico-test" ] }, "spec": { "ingress": [ { "action": "allow", "source": { "tag": "calico-test" }, "destination": {} } ], "egress": [ { "action": "allow", "source": {}, "destination": {} } ] } } ]
这里是以json的格式来输出,还可以使用yaml、GoFormat等形式。
replace
替换一个网络资源。修改上述的profile1.json文件中的内容后,直接执行下面命令可以替换网络资源的相关属性。
# calicoctl replace -f profile1.json Successfully replaced 1 'profile' resource(s)
apply
综合了create和replace命令。没有资源时就创建,有资源时就替换。
delete
删除一个网络资源。
创建替换网络资源时,都是通过文件来创建,而配置文件中都指明了网络资源的类型、属性等。但删除网络资源就简单多了,只需要通过网络资源的类型和名称就可以删除对应的资源。
# calicoctl delete profile calico-test Successfully deleted 1 'profile' resource(s)
config
管理系统级别和节点级别的配置选项。
该命令下又包含三个子命令:set、unset和get。设置、取消和获取。
具体的设置项包含:logLevel(配置值有none,debug,info,warning,error,critical),nodeToNodeMesh(on,off),asNumber(0-4294967295),ipip(on,off)。
ipam
IP地址管理。
该命令下又包含三个子命令:release和show。其中:
release:释放已经被calico分配的IP;
show:显示分配IP的详细详细。
node
calico节点管理。
该命令下又包含四个子命令:run、status、diags和checksystem。其中:
run命令可用于在该服务器上运行一个calico实例;
status命令可检查整个calico网络的状态;
diags用于手机calico节点的诊断信息;
checksystem命令用于检查改服务器是否可以运行一个calico实例。
我们经常使用run命令来创建一个calico实例,比如:
# calicoctl node run --node-image=calico/node:v2.6.2 --ip=192.168.115.73 Running command to load modules: modprobe -a xt_set ip6_tables Enabling IPv4 forwarding Enabling IPv6 forwarding Increasing conntrack limit Removing old calico-node container (if running). Running the following command to start calico-node: docker run --net=host --privileged --name=calico-node -d --restart=always -e NODENAME=dcos-agent1 -e CALICO_NETWORKING_BACKEND=bird -e CALICO_LIBNETWORK_ENABLED=true -e IP=192.168.115.73 -e ETCD_ENDPOINTS=http://192.168.115.111:2379 -v /var/log/calico:/var/log/calico -v /var/run/calico:/var/run/calico -v /lib/modules:/lib/modules -v /run:/run -v /run/docker/plugins:/run/docker/plugins -v /var/run/docker.sock:/var/run/docker.sock calico/node:v2.6.2 Image may take a short time to download if it is not available locally. Container started, checking progress logs. Skipping datastore connection test Using IPv4 address from environment: IP=109.105.115.73 IPv4 address 109.105.115.73 discovered on interface em1 No AS number configured on node resource, using global value Using node name: dcos-agent1 Starting libnetwork service Calico node started successfully
这里,使用了的calico镜像版本为calico/node:v2.6.2,通过日志可以看到其启动calico容器时的具体命令。
此外,“calicoctl node run”有相当多的选项可以使用,可以通过“calicoctl node run --help”来查看。但是,这些选项还不足够覆盖所有的calico自身的选项(如etcd的url等),我们可以配置/etc/calico/calicoctl.cfg文件来实现。当然,也可以配置到其他文件,再通过-f选项来指定该文件。配置文件的示例如下:
apiVersion: v1 kind: calicoApiConfig metadata: spec: datastoreType: "etcdv2" etcdEndpoints: "http://${etcd-ip1}:2379,http://${etcd-ip2}:2379"
version
展示版本。
选项
-h --help
显示帮助。
-l --log-level=
设置日志级别。日志级别包含:panic,fatal,error,warn,info,debug。默认是fatal级别。
以上是“calicoctl命令怎么用”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!
文章标题:calicoctl命令怎么用
转载源于:http://lswzjz.com/article/ihgdsi.html