機械翻訳について

9 Oracle Cloud Infrastructureの構成ファイルを使用したHAのクイック・インストール

Kubernetesクラスタを含むOracle Cloud Native Environmentの基本的なデプロイメントをOracle Cloud Infrastructureにインストールします。 インストールする追加のモジュールを構成ファイルに追加できます。 このトピックの例では、Oracle Cloud Infrastructureで使用可能なすべてのモジュールをインストールします。

これにより、KubernetesクラスタおよびOracle Cloud Infrastructure Cloud Controller Managerモジュールを含むOracle Cloud InfrastructureへのOracle Cloud Native Environmentのデプロイメントが設定されます。

必要なノード: 高可用性に必要な数のノード。 (「Kubernetes高可用性要件」を参照)。

  • オペレータ・ノード: オペレータ・ノードとして使用する1つのノード。これは、Platform CLI (olcnectl)を使用してインストールを実行したり、Platform API Serverをホストしたりするために使用されます。

  • Kubernetesコントロール・プレーン: Kubernetesコントロール・プレーン・ノードとして使用する3つ以上のノード。

  • Kubernetesワーカー: Kubernetesワーカー・ノードとして使用する2つ以上のノード。

始める前に: 前提条件の設定を完了します。 「事前設定」を参照してください。

構成ファイルを使用してOracle Cloud InfrastructureにHAをすばやくインストールするには:

  1. Oracle Cloud Infrastructureロード・バランサを設定します。
    1. Oracle Cloud Infrastructureにサインインします。

    2. ロード・バランサを作成します。

    3. 重み付けラウンド・ロビンを使用して、バックエンド・セットをロード・バランサに追加します。 ヘルス・チェックをTCPポート6443に設定します。

    4. コントロール・プレーン・ノードをバックエンド・セットに追加します。 コントロール・プレーン・ノードのポートをポート6443に設定します。

    5. TCPポート6443を使用して、バックエンド・セットのリスナーを作成します。

  2. オペレータ・ノードで、デプロイメント用のOracle Cloud Native Environment構成ファイルを作成します。 Oracle Cloud Native Environment構成ファイルの作成の詳細は、「プラットフォーム・コマンドライン・インタフェース」を参照してください。 この例では、構成ファイルに対してファイル名myenvironment.yamlを使用します。

    KubernetesモジュールおよびOracle Cloud Infrastructure Cloud Controller Managerモジュールをインストールする基本的な構成ファイルの例は、次のとおりです:

    environments:
      - environment-name: myenvironment
        globals:
          api-server: operator.example.com:8091
          selinux: enforcing
        modules:
          - module: kubernetes
            name: mycluster
            args:
              container-registry: container-registry.oracle.com/olcne
              load-balancer: lb.example.com:6443
              control-plane-nodes: 
                - control1.example.com:8090
                - control2.example.com:8090
                - control3.example.com:8090
              worker-nodes:
                - worker1.example.com:8090
                - worker2.example.com:8090
                - worker3.example.com:8090
          - module: oci-ccm
            name: myoci
            args: 
              oci-ccm-kubernetes-module: mycluster 
              oci-region: us-ashburn-1 
              oci-tenancy: ocid1.tenancy.oc1..unique_ID
              oci-compartment: ocid1.compartment.oc1..unique_ID
              oci-user: ocid1.user.oc1..unique_ID
              oci-fingerprint: b5:52:...
              oci-private-key-file: /home/opc/.oci/oci_api_key.pem 
              oci-vcn: ocid1.vcn.oc1..unique_ID 
              oci-lb-subnet1: ocid1.subnet.oc1..unique_ID 

    この構成ファイルの例では、デフォルト設定を使用して、3つのコントロール・プレーン・ノード(3つのワーカー・ノード)を持つKubernetesクラスタを作成し、Oracle Cloud Infrastructureにすでに設定されている外部ロード・バランサを使用します。 リストされているノードを環境内のノードを反映するように変更します。 また、URLをOracle Cloud Infrastructureロード・バランサのURLに変更する必要があります。 Oracle Cloud Infrastructure Cloud Controller Managerモジュールの設定には複数の値が必要で、このモジュールに指定する内容の詳細は、Oracle Cloud Infrastructure Cloud Controller Managerモジュール」を参照してください。

    ヒント:

    プライベートCA証明書は、KubernetesノードとKubernetes externalIPsサービス間の通信用に自動的に生成されます。 CA証明書を使用するか、構成ファイルにモジュールをさらに追加するには、「構成ファイルを使用したクイック・インストール」でこれらのオプションに関する情報を参照してください。

  3. オペレータ・ノードで、--config-fileオプションを指定してolcnectl provisionコマンドを使用してインストールを開始します。 たとえば:

    olcnectl provision --config-file myenvironment.yaml

    SSHログイン資格証明、プロキシ・サーバー情報、--yesオプションを使用してプロンプトを自動的に受け入れるオプションなど、他のいくつかのコマンド・オプションが必要になる場合があります。 olcnectl provisionコマンドの構文オプションの詳細は、「プラットフォーム・コマンドライン・インタフェース」を参照してください。

  4. 各ノードで実行するステップのリストが表示され、続行するためのプロンプトが表示されます。 たとえば、コントロール・プレーン・ノードでは、変更は次のようになります:

    ? Apply control-plane configuration on control1.example.com:
    * Install oracle-olcne-release
    ...
    * Install and enable olcne-agent
    
    Proceed? yes/no(default) yes                          

    yesと入力して続行します。 ノードが設定されます。

    各ノードの変更に関する情報が表示されます。 各ノードの設定ステップを確認する必要があります。

    ヒント:

    各ノードでの変更の受け入れを回避するには、olcnectl provisionコマンドで--yesコマンド・オプションを使用します。

  5. ノードはOracle Cloud Native Environmentプラットフォームで設定され、モジュールがインストールされます。 次の構文を使用して環境に関する情報を表示できます:

    olcnectl module instances 
    --api-server host_name:8091 
    --environment-name name

    ヒント:

    将来のolcnectlコマンドで--api-serverオプションを使用しないようにするには、--update-configオプションを追加します。

    たとえば:

    olcnectl module instances \
    --api-server operator.example.com:8091 \
    --environment-name myenvironment \
    --update-config

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

    INFO[...] Global flag configuration for myenvironment has been written to the 
    local Platform config and you don't need to specify them for any future calls 
    INSTANCE                   MODULE      STATE    
    control1.example.com:8090  node        installed
    ...
    mycluster                  kubernetes  installed

    デプロイメントの詳細を表示するには、olcnectl module reportコマンドを使用します。 たとえば:

    olcnectl module report \
    --environment-name myenvironment \
    --name mycluster \
    --children
  6. コントロール・プレーン・ノードでKubernetes CLI (kubectl)を設定します。 kubectlコマンドは、クラスタ内の各コントロール・プレーン・ノードにインストールされます。 これを使用してクラスタにアクセスするには、Kubernetes構成ファイルを使用して構成する必要があります。

    コントロール・プレーン・ノードにログインし、次のコマンドをコピーしてユーザーのホーム・ディレクトリのターミナルに貼り付けます:

    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config
    export KUBECONFIG=$HOME/.kube/config
    echo 'export KUBECONFIG=$HOME/.kube/config' >> $HOME/.bashrc

    次のようなkubectlコマンドを使用して、kubectlコマンドを使用できることを確認します:

    kubectl get pods --all-namespaces

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

    NAMESPACE              NAME                          READY   STATUS    RESTARTS   AGE
    externalip-validat...  externalip-validation-...     1/1     Running   0          1h
    kube-system            coredns-...                   1/1     Running   0          1h
    kube-system            coredns-...                   1/1     Running   0          1h
    kube-system            etcd-...                      1/1     Running   2          1h
    kube-system            etcd-...                      1/1     Running   2          1h
    kube-system            kube-apiserver-...            1/1     Running   2          1h
    kube-system            kube-apiserver-...            1/1     Running   2          1h
    kube-system            kube-controller-manager-...   1/1     Running   5 (1h ago) 1h
    kube-system            kube-controller-manager-...   1/1     Running   2          1h
    kube-system            kube-flannel-...              1/1     Running   0          1h
    kube-system            kube-flannel-...              1/1     Running   0          1h
    kube-system            kube-flannel-...              1/1     Running   0          1h
    kube-system            kube-proxy-...                1/1     Running   0          1h
    kube-system            kube-proxy-...                1/1     Running   0          1h
    kube-system            kube-proxy-...                1/1     Running   0          1h
    kube-system            kube-scheduler-...            1/1     Running   5 (1h ago) 1h
    kube-system            kube-scheduler-...            1/1     Running   2          1h
    kubernetes-dashboard   kubernetes-dashboard-...      1/1     Running   0          1h

    ノート:

    デプロイメント後、オペレータ・ノードのローカル・ディレクトリにKubernetes構成ファイルが作成されます。 このファイルにはkubeconfig.environment_name.cluster_nameという名前が付けられ、Kubernetesクラスタに関する情報が含まれます。 このファイルは便宜上作成され、コントロール・プレーン・ノードでkubectlを設定する必要はありません。

    複数のクラスタがある場合は、このファイルを使用して、より大きなKubernetes構成ファイルに追加できます。 複数のクラスタへのアクセスの構成の詳細は、アップストリーム「Kubernetesドキュメント」を参照してください。

ヒント:

Kubernetesクラスタをスケーリングするノードの追加および削除

Kubernetesクラスタのノードを変更するには、更新されたコントロール・プレーンおよびワーカー・ノード・リストを使用して、olcnectl provisionコマンドを再度実行: 新しいノード・リストを省略したノードはクラスタから削除され、指定した新しいノードはクラスタに追加されます。

ノードを追加する場合、新しい証明書が自動的に生成され、新しいノードにインストールされ、Oracle Cloud Native Environmentソフトウェアがインストールされ、ノードがKubernetesクラスタに追加されます。 ただし、外部ロード・バランサを使用している場合は、必要な前提条件(「事前設定」を参照)ですべての新しいノードが設定されていること、および新しいコントロール・プレーン・ノードがロード・バランサに追加されていることを確認する必要があります。