機械翻訳について

2 Calicoのインストール

この章では、CalicoモジュールをOracle Cloud Native Environmentにインストールする方法について説明します。 この章では、Kubernetesモジュールの作成時にKubernetes Calico CNIをインストールする方法についても説明します。

前提条件

この項では、Tigera Calicoオペレータを設定するために必要な前提条件情報について説明します。

firewalldサービスの無効化

各Kubernetesノードでfirewalldサービスを無効にします:
sudo systemctl stop firewalld.service
sudo systemctl disable firewalld.service

重要:

firewalldサービスを無効にすると、このサービスによって提供されるネットワーク保護が削除されるため、Calicoネットワーク・ポリシーを実装してKubernetesクラスタを保護する必要があります。 Calicoを使用してクラスタを保護する方法の詳細は、アップストリームの「Calicoのドキュメント」を参照してください。

プロキシ構成の更新

環境でプロキシ・サーバーを使用している場合は、CRI-Oプロキシ構成ファイルを編集し、KubernetesサービスIP (デフォルトは10.96.0.1)をNO_PROXY変数に追加します。 たとえば、各Kubernetesノードで、/etc/systemd/system/crio.service.d/proxy.confファイルを編集します:

[Service]
Environment="HTTP_PROXY=http://proxy.example.com:3128"
Environment="HTTPS_PROXY=https://proxy.example.com:3128"
Environment="NO_PROXY=mydomain.example.com,10.96.0.1"

構成ファイルを再ロードし、crioサービスを再起動します:

sudo systemctl daemon-reload
sudo systemctl restart crio.service

ノート:

olcnectl provisionコマンドを使用してクイック・インストールを実行する場合は、このステップを実行する必要はありません。 これは、そのインストール・メソッドを使用してプロキシ情報を指定するときに自動的に設定されます。

Kubernetesモジュール

Calicoモジュールをインストールするには、Kubernetesモジュールを作成して、CNIを設定せずにインストールする必要があります。 Kubernetesモジュールを作成する場合は、olcnectl module createコマンドの一部として--pod-network noneオプションを設定します。 たとえば:

olcnectl module create \
--environment-name myenvironment \
--module kubernetes \
--name mycluster \
--pod-network none \
...

重要:

Tigera CalicoオペレータをネイティブのKubernetes CNIとしてデプロイする場合、これは必要ありません。 かわりに、このオプションを--pod-network calicoに設定します。

Calico構成ファイルの作成

オプションで、Calicoモジュールを構成ファイルとともにインストールできます。 Calico構成ファイルは、Tigera Calicoオペレータの特定の変更を構成するために使用されます。 このYAMLファイルには、operator.tigera.io/v1/Installationspec部分が含まれています。 このファイルはオペレータ・ノードで使用可能である必要があります。

ノート:

--pod-network calicoオプションを指定してKubernetesモジュールを作成するときに、Tigera CalicoオペレータをネイティブのKubernetes CNIとしてデプロイする場合は、Calico構成ファイルを使用できません。

Calico構成ファイルの詳細は、アップストリームの「Calicoのドキュメント」を参照してください。

Calico構成ファイルの例:

installation:
  cni:
    type: Calico
  calicoNetwork:
    bgp: Disabled
    ipPools:
    - cidr: 198.51.100.0/24
      encapsulation: VXLAN
  registry: container-registry.oracle.com
  imagePath: olcne

Calico CNIのデプロイ

Calicoをインストールする最も簡単な方法は、Kubernetesモジュールの作成時にKubernetes CNIをCalicoに設定することです。 これにより、Tigera Calicoオペレータがデフォルト構成でKubernetesクラスタにインストールされます。 このメソッドでCalicoモジュールをインストールする必要はありません。

CalicoをKubernetes CNIとして設定する前に、「事前設定」で説明されているように、前提条件を実行してfirewalldサービスを無効にし、CRI-Oのプロキシ構成を更新します。

CalicoをKubernetes CNIとして設定するには、olcnectl module create --module kubernetesコマンドの--pod-network calicoオプションを使用してKubernetesモジュールを作成します。 このオプションは、CalicoをKubernetesクラスタ内のポッドのKubernetes CNIとして設定します。 この例のKubernetesモジュールの名前は、myclusterです。

olcnectl module create \
--environment-name myenvironment \
--module kubernetes \
--name mycluster \
--pod-network calico \
...

Kubernetesモジュールの作成の詳細は、「Kubernetesモジュール」を参照してください。

Calicoモジュールのデプロイ

Calicoモジュールでは、構成ファイルを使用してTigera Calicoオペレータを構成できます。 構成ファイルを使用しない場合、インストールは、Kubernetesモジュールの作成時にネイティブのCalico CNIインストール・オプションを使用する場合と同じです。 Calicoモジュールを使用する利点は、構成ファイルを使用できることです。 オペレータ構成を変更しない場合は、必要なステップが少ないため、Calico CNIメソッドを使用してCalicoをインストールできます。

このメソッドを使用するには、--pod-network noneオプションを使用してKubernetesモジュールを作成する必要があります。 このオプションは、クラスタ内のポッドに対してKubernetes CNIを設定しません。 次に、CalicoモジュールをインストールしてCNIを設定します。

Calicoモジュールの作成に使用する構文については、「プラットフォーム・コマンドライン・インタフェース」olcnectl module createコマンドのcalicoオプションを参照してください。

Calicoモジュールをデプロイするには:

  1. olcnectl module create --module kubernetesコマンドの--pod-network noneオプションを使用して、Kubernetesモジュールを作成してインストールします。 このオプションは、クラスタ内のポッドに対してKubernetes CNIを設定しません。 この例のKubernetesモジュールの名前は、myclusterです。 たとえば:

    olcnectl module create \
    --environment-name myenvironment \
    --module kubernetes \
    --name mycluster \
    --pod-network none \
    ...

    重要:

    --pod-network noneオプションを指定してKubernetesモジュールをインストールすると、Calicoモジュールをインストールするまで、すべてのkube-systemポッドがpendingとしてマークされます。 Calicoモジュールがインストールされると、これらのkube-systemポッドはrunningとしてマークされます。

  2. Calicoモジュールを作成し、--calico-kubernetes-moduleオプションを使用してmyclusterという名前のKubernetesモジュールに関連付けます。 この例では、Calicoモジュールの名前はmycalicoです。

    olcnectl module create \
    --environment-name myenvironment \
    --module calico \
    --name mycalico \
    --calico-kubernetes-module mycluster 

    --moduleオプションは、モジュール・タイプを作成(calico)に設定します。 Calicoモジュールの名前は、--nameオプションを使用して定義します。この場合、mycalicoです。

    --calico-kubernetes-moduleオプションは、Kubernetesモジュールの名前を設定します。

    オプションの--calico-installation-configは、Calico構成ファイルのロケーションを設定します。 このファイルは、指定されたパスのオペレータ・ノードで使用可能である必要があります。 この構成ファイルの作成については、「事前設定」を参照してください。

    モジュールの追加時に必要なオプションの一部が含まれていないと、そのオプションを指定するように求められます。

  3. olcnectl module installコマンドを使用して、Calicoモジュールをインストールします。 たとえば:

    olcnectl module install \
    --environment-name myenvironment \
    --name mycalico

    Calicoモジュールは、Kubernetesクラスタにデプロイされます。

Calicoデプロイメントの確認

このセクションでは、Calicoのインストールを検証する方法、Kubernetes CNIインストール・オプション、またはCalicoモジュールの両方について説明します。

Calicoモジュールの確認

Calicoモジュールを使用してCalicoをインストールした場合は、オペレータ・ノードでolcnectl module instancesコマンドを使用して、モジュールがデプロイされていることを確認できます。 たとえば:

olcnectl module instances \
--environment-name myenvironment

出力は次のようになります:

INSTANCE                  MODULE        STATE  
mycalico                  calico        installed 
mycluster                 kubernetes    installed
control1.example.com      node          installed
...

MODULE列のcalicoのエントリは、installed状態であることに注意してください。

また、olcnectl module reportコマンドを使用して、モジュールに関する情報を確認します。 たとえば、次のコマンドを使用して、myenvironmentmycalicoという名前のCalicoモジュールを確認します:

olcnectl module report \
--environment-name myenvironment \
--name mycalico \
--children

olcnectl module reportコマンドの構文の詳細は、「プラットフォーム・コマンドライン・インタフェース」を参照してください。

Tigera Calicoオペレータの検証

Tigera Calicoオペレータは、Kubernetes Calico CNIインストール・オプションおよびCalicoモジュールのインストール・メソッドを使用するときにデプロイされます。 この項では、Calicoのインストールを確認して構成について学習できるいくつかの領域を示します。

Tigera Calicoオペレータ・ステータス

kubectl get tigerastatusコマンドを使用して、Tigera Calicoオペレータ・ステータスに関する情報を取得できます:

kubectl get tigerastatus

出力には、オペレータ・コンポーネントのステータスが表示され、次のようになります:

NAME        AVAILABLE   PROGRESSING   DEGRADED   SINCE
apiserver   True        False         False      8m24s
calico      True        False         False      8m39s

IPプール

kubectl get ippoolsコマンドを使用して、設定されているデフォルトのIPプールに関する情報を取得できます:

kubectl get ippools

出力は次のようになります:

NAME                  CREATED AT
default-ipv4-ippool   ...

IPプールの詳細を取得するには、次を使用します:

kubectl describe ippools default-ipv4-ippool 

出力は次のようになります:

Name:         default-ipv4-ippool
Namespace:    
Labels:       <none>
Annotations:  <none>
API Version:  projectcalico.org/v3
Kind:         IPPool
Metadata:
  Creation Timestamp:  ...
  Resource Version:    1112
  UID:                 fd04d1d2-b5c9-4feb-9385-2b423c4dd67f
Spec:
  Allowed Uses:
    Workload
    Tunnel
  Block Size:     26
  Cidr:           10.244.0.0/16
  Ipip Mode:      Never
  Nat Outgoing:   true
  Node Selector:  all()
  Vxlan Mode:     Always
Events:           <none>

ネットワーク・ポリシー

設定されているネットワーク・ポリシーに関する情報を取得するには、次を使用します:

kubectl get networkpolicies --all-namespaces

出力は次のようになります:

NAMESPACE          NAME              POD-SELECTOR     AGE
calico-apiserver   allow-apiserver   apiserver=true   66m

ネットワーク・ポリシーの詳細を取得するには、次を使用します:

kubectl describe networkpolicies --all-namespaces

出力は次のようになります:

Name:         allow-apiserver
Namespace:    calico-apiserver
Created on:   <date> 05:27:30 +0000 GMT
Labels:       <none>
Annotations:  <none>
Spec:
  PodSelector:     apiserver=true
  Allowing ingress traffic:
    To Port: 5443/TCP
    From: <any> (traffic not restricted by source)
  Not affecting egress traffic
  Policy Types: Ingress

インストールの構成

次のものを使用して、Tigera Calicoオペレータのインストール構成を確認できます:

kubectl get installation -o yaml

出力は次のようになります:

apiVersion: v1
items:
- apiVersion: operator.tigera.io/v1
  kind: Installation
...
  spec:
    calicoNetwork:
      bgp: Disabled
      hostPorts: Enabled
      ipPools:
      - blockSize: 26
        cidr: 10.244.0.0/16
        disableBGPExport: false
        encapsulation: VXLAN
        natOutgoing: Enabled
        nodeSelector: all()
      linuxDataplane: Iptables
      multiInterfaceMode: None
      nodeAddressAutodetectionV4:
        firstFound: true
      cni:
        ipam:
          type: Calico
        type: Calico
      controlPlaneReplicas: 2
      flexVolumePath: /usr/libexec/kubernetes/kubelet-plugins/volume/exec/
      imagePath: olcne
      kubeletVolumePluginPath: /var/lib/kubelet
      nodeUpdateStrategy:
        rollingUpdate:
          maxUnavailable: 1
        type: RollingUpdate
      nonPrivileged: Disabled
      registry: container-registry.oracle.com/
      variant: Calico
...