您好,登錄后才能下訂單哦!
這篇文章主要介紹calicoctl命令怎么用,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
創建一個網絡資源。比如說我們要創建一個“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網絡下的容器。
獲取一個網絡資源的信息。
這里我們也以上面創建的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等形式。
替換一個網絡資源。修改上述的profile1.json文件中的內容后,直接執行下面命令可以替換網絡資源的相關屬性。
# calicoctl replace -f profile1.json Successfully replaced 1 'profile' resource(s)
綜合了create和replace命令。沒有資源時就創建,有資源時就替換。
刪除一個網絡資源。
創建替換網絡資源時,都是通過文件來創建,而配置文件中都指明了網絡資源的類型、屬性等。但刪除網絡資源就簡單多了,只需要通過網絡資源的類型和名稱就可以刪除對應的資源。
# calicoctl delete profile calico-test Successfully deleted 1 'profile' resource(s)
管理系統級別和節點級別的配置選項。
該命令下又包含三個子命令:set、unset和get。設置、取消和獲取。
具體的設置項包含:logLevel(配置值有none,debug,info,warning,error,critical),nodeToNodeMesh(on,off),asNumber(0-4294967295),ipip(on,off)。
IP地址管理。
該命令下又包含三個子命令:release和show。其中:
release:釋放已經被calico分配的IP;
show:顯示分配IP的詳細詳細。
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"
展示版本。
顯示幫助。
設置日志級別。日志級別包含:panic,fatal,error,warn,info,debug。默認是fatal級別。
以上是“calicoctl命令怎么用”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。