首页 > 百科 > 服务器 > 正文

用法

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:

#calicoctlcreate-fprofile1.json
Successfullycreated1'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为例。

#calicoctlgetprofilecalico-test-ojson
[
{
"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文件中的内容后,直接执行下面命令可以替换网络资源的相关属性。

#calicoctlreplace-fprofile1.json
Successfullyreplaced1'profile'resource(s)

apply

综合了create和replace命令。没有资源时就创建,有资源时就替换。

delete

删除一个网络资源。

创建替换网络资源时,都是通过文件来创建,而配置文件中都指明了网络资源的类型、属性等。但删除网络资源就简单多了,只需要通过网络资源的类型和名称就可以删除对应的资源。

#calicoctldeleteprofilecalico-test
Successfullydeleted1'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实例,比如:

#calicoctlnoderun--node-image=calico/node:v2.6.2--ip=192.168.115.73
Runningcommandtoloadmodules:modprobe-axt_setip6_tables
EnablingIPv4forwarding
EnablingIPv6forwarding
Increasingconntracklimit
Removingoldcalico-nodecontainer(ifrunning).
Runningthefollowingcommandtostartcalico-node:

dockerrun--net=host--privileged--name=calico-node-d--restart=always-eNODENAME=dcos-agent1-eCALICO_NETWORKING_BACKEND=bird-eCALICO_LIBNETWORK_ENABLED=true-eIP=192.168.115.73-eETCD_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.sockcalico/node:v2.6.2

Imagemaytakeashorttimetodownloadifitisnotavailablelocally.
Containerstarted,checkingprogresslogs.

Skippingdatastoreconnectiontest
UsingIPv4addressfromenvironment:IP=109.105.115.73
IPv4address109.105.115.73discoveredoninterfaceem1
NoASnumberconfiguredonnoderesource,usingglobalvalue
Usingnodename:dcos-agent1
Startinglibnetworkservice
Caliconodestartedsuccessfully

这里,使用了的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级别。

猜你喜欢
文章评论已关闭!
picture loss