溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

calicoctl命令怎么用

發(fā)布時間:2021-11-08 14:51:44 來源:億速云 閱讀:420 作者:小新 欄目:云計算

這篇文章主要介紹calicoctl命令怎么用,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

用法

create

創(chuàng)建一個網(wǎng)絡(luò)資源。比如說我們要創(chuàng)建一個“profile” 的網(wǎng)絡(luò)資源,那么先以json或者yaml的文件格式定義這個profile的屬性,然后使用-f參數(shù)來指定。例如,屬性文件名為profile1.json,其內(nèi)容為:

{
    "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命令創(chuàng)建profile:

# calicoctl create -f profile1.json
Successfully created 1 'profile' resource(s)

另外,還可以使用-c選項來指定配置文件。

ps:這里需要注意的是,創(chuàng)建了calico網(wǎng)絡(luò)之后,使用同一個calico網(wǎng)絡(luò)的容器之間可以實現(xiàn)網(wǎng)絡(luò)互通。但如果想讓一個外部的節(jié)點也可以和這個calico網(wǎng)絡(luò)互通,那么需要進行一些修改,在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網(wǎng)絡(luò)下的容器。

get

獲取一個網(wǎng)絡(luò)資源的信息。

這里我們也以上面創(chuàng)建的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

替換一個網(wǎng)絡(luò)資源。修改上述的profile1.json文件中的內(nèi)容后,直接執(zhí)行下面命令可以替換網(wǎng)絡(luò)資源的相關(guān)屬性。

# calicoctl replace -f profile1.json
Successfully replaced 1 'profile' resource(s)

apply

綜合了create和replace命令。沒有資源時就創(chuàng)建,有資源時就替換。

delete

刪除一個網(wǎng)絡(luò)資源。

創(chuàng)建替換網(wǎng)絡(luò)資源時,都是通過文件來創(chuàng)建,而配置文件中都指明了網(wǎng)絡(luò)資源的類型、屬性等。但刪除網(wǎng)絡(luò)資源就簡單多了,只需要通過網(wǎng)絡(luò)資源的類型和名稱就可以刪除對應(yīng)的資源。

# calicoctl delete profile calico-test
Successfully deleted 1 'profile' resource(s)

config

管理系統(tǒng)級別和節(jié)點級別的配置選項。

該命令下又包含三個子命令:set、unset和get。設(shè)置、取消和獲取。

具體的設(shè)置項包含:logLevel(配置值有none,debug,info,warning,error,critical),nodeToNodeMesh(on,off),asNumber(0-4294967295),ipip(on,off)。

ipam

IP地址管理。

該命令下又包含三個子命令:release和show。其中:

  • release:釋放已經(jīng)被calico分配的IP;

  • show:顯示分配IP的詳細詳細。

node

calico節(jié)點管理。

該命令下又包含四個子命令:run、status、diags和checksystem。其中:

  • run命令可用于在該服務(wù)器上運行一個calico實例;

  • status命令可檢查整個calico網(wǎng)絡(luò)的狀態(tài);

  • diags用于手機calico節(jié)點的診斷信息;

  • checksystem命令用于檢查改服務(wù)器是否可以運行一個calico實例。

我們經(jīng)常使用run命令來創(chuàng)建一個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”有相當(dāng)多的選項可以使用,可以通過“calicoctl node run --help”來查看。但是,這些選項還不足夠覆蓋所有的calico自身的選項(如etcd的url等),我們可以配置/etc/calico/calicoctl.cfg文件來實現(xiàn)。當(dāng)然,也可以配置到其他文件,再通過-f選項來指定該文件。配置文件的示例如下:

apiVersion: v1
kind: calicoApiConfig
metadata:
spec:
  datastoreType: "etcdv2"
  etcdEndpoints: "http://${etcd-ip1}:2379,http://${etcd-ip2}:2379"

version

展示版本。

選項

-h --help

顯示幫助。

-l --log-level=

設(shè)置日志級別。日志級別包含:panic,fatal,error,warn,info,debug。默認是fatal級別。

以上是“calicoctl命令怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI