機械翻訳について

5 内部Load Balancerを使用したクイックHAインストール

Kubernetesクラスタを含む、ベア・メタル・ホストまたは仮想マシンに高可用性Oracle Cloud Native Environmentをインストールします。 この例では、プラットフォームCLIによってデプロイされた内部コンテナ化されたNGINXおよびKeepalivedロード・バランサを使用します。

これは、ベア・メタル・ホストまたは仮想マシンにOracle Cloud Native Environmentの基本的な高可用性デプロイメントを設定するための最速のメソッドです。 このメソッドは、ノードを設定し、Oracle Cloud Native Environmentプラットフォームをインストールして、Kubernetesクラスタをインストールします。 ロード・バランサは、Platform CLIによってコントロール・プレーン・ノードにデプロイされ、Kubernetesクラスタで構成されます。 ロード・バランサは、NGINXおよびKeepalivedのコンテナ・ベースのデプロイメントです。

セキュリティに関する考慮事項: このインストール例を使用する場合は、次のセキュリティ設定を考慮してください:

  • プライベートCA証明書は、Kubernetesノード間のネットワーク通信を保護するために使用されます。

  • 各ノードのホスト・オペレーティング・システムでSELinuxがpermissiveモードに設定されます。

  • Kubernetes externalIPsサービスはデプロイされません。

より複雑なデプロイメントを実行し、これらのセキュリティ設定を変更する場合は、「構成ファイルを使用したクイック・インストール」に示すように構成ファイルを使用します。

必要なノード: 高可用性に必要な数のノード。 (「Kubernetes高可用性要件」を参照)。 これらを次に示します。

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

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

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

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

内部ロード・バランサを使用したクイック・インストールを実行するには:

  1. Kubernetesモジュールの作成時に--virtual-ipオプションを使用して、プライマリ・コントロール・プレーン・ノードに使用できる仮想IPアドレスを指定します。 このIPアドレスはどのノードでも使用しないでください。また、ロード・バランサによってプライマリ・コントローラとして割り当てられたコントロール・プレーン・ノードに動的に割り当てられます。 プライマリ・ノードに障害が発生した場合、ロード・バランサは仮想IPアドレスを別のコントロール・プレーン・ノードに再割当てし、さらにプライマリ・ノードになります。

  2. オペレータ・ノードで、olcnectl provisionコマンドを使用してインストールを開始します。 必須構文は次のとおりです:

    olcnectl provision 
    --api-server host 
    --control-plane-nodes hosts
    --master-nodes hosts (Deprecated)
    --worker-nodes hosts
    --environment-name name 
    --name name
    --virtual-ip IP_address

    --api-serverオプションを使用して、プラットフォームAPIサーバーを設定するノードのFQDNを設定します。

    --control-plane-nodesオプションを使用して、プラットフォーム・エージェントで設定し、Kubernetesコントロール・プレーン・ノードのロールを割り当てるノードのFQDNを設定します。 これはカンマ区切りリストです。

    --worker-nodesオプションを使用して、プラットフォーム・エージェントで設定し、Kubernetesワーカー・ノードのロールを割り当てるノードのFQDNを設定します。 これはカンマ区切りリストです。

    --environment-nameオプションを使用して、環境を識別するための名前を設定します。

    --nameオプションを使用して、Kubernetesモジュールを識別するための名前を設定します。

    仮想IPアドレスを設定するには、--virtual-ipオプションを使用します。

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

    たとえば:

    olcnectl provision \
    --api-server operator.example.com \
    --control-plane-nodes control1.example.com,control2.example.com,control3.example.com \
    --worker-nodes worker1.example.com,worker2.example.com,worker3.example.com \
    --environment-name myenvironment \
    --name mycluster \
    --virtual-ip 192.0.2.100
  3. 各ノードで実行するステップのリストが表示され、続行するためのプロンプトが表示されます。 たとえば、コントロール・プレーン・ノードでは、変更は次のようになります:

    ? 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コマンド・オプションを使用します。

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

    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
  5. コントロール・プレーン・ノードで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クラスタに追加されます。 ただし、必要な「事前設定」を使用してすべての新しいノードが設定されていること、および外部ロード・バランサを使用している場合、新しいコントロール・プレーン・ノードがロード・バランサに追加されていることを確認する必要があります。