calicoctlコマンドの概要

5947 ワード

背景
calicoには、複数のネットワークリソースがあります.v 1.6.1の例として、ネットワークリソースは、node、bgpPeer、hostEndpoint、workloadEndpoint、ipPool、policy、profileなどを含む.
これらのネットワークリソースを制御するためにcalicoctlコマンドラインツールを使用する方法について説明します.
使用法
create
ネットワークリソースを作成します.たとえば、「profile」のネットワークリソースを作成するには、jsonまたはyamlのファイル形式でこのprofileのプロパティを定義し、-fパラメータを使用して指定します.たとえば、プロパティファイル名profile 1.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": {}
        }

次に、profileを次の「calicoctl replace」コマンドで置き換えます.これにより、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
ネットワークリソースを置き換えます.上記のprofile 1を修正する.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の3つのサブコマンドも含まれています.設定、キャンセル、および取得.
具体的な設定項目には、logLevel(構成値はnone,debug,info,warning,error,critical)、nodeToNodeMesh(on,off)、asNumber(0-4294967295)、ipip(on,off)が含まれます.
ipam
IPアドレス管理.
このコマンドにはreleaseとshowの3つのサブコマンドも含まれています.次のようになります.
  • release:calicoによって割り当てられたIPを解放する.
  • show:割り当てIPの詳細を表示します.

  • node
    calicoノード管理.
    このコマンドには、run、status、diags、checksystemの4つのサブコマンドも含まれます.次のようになります.
  • 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:v 2である.6.2では、calicoコンテナを起動するときの具体的なコマンドがログで表示されます.
    また、「calicoctl node run」にはかなりの選択肢があり、「calicoctl node run--help」で見ることができます.しかし、これらのオプションは、etcdのurlなど、すべてのcalico自身のオプションを上書きするのに十分ではなく、/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レベルです.
    転載先:https://www.cnblogs.com/styshoo/p/8486598.html