4.6 マルチ・マスター(HA) Kubernetesクラスタの作成

この項では、単一マスター・デプロイメントとマルチ・マスター・デプロイメントの作成方法の相違点について説明します。

マルチ・マスターKubernetesクラスタをデプロイするには:

  1. マルチ・マスター・デプロイメントでは、マスター・ノードで複数の追加のポートを開く必要があります。マルチ・マスター・デプロイメントに必要なポートを開く方法の詳細は、2.3.4.2「マルチ・マスターのファイアウォール・ルール」を参照してください。

  2. マルチ・マスター・デプロイメントでは、マスター・ノードの高可用性を実現するためにロード・バランサが必要になります。ロード・バランサは、マルチ・マスタ・デプロイメントの実行時に自動的にデプロイすることも、独自のロード・バランサの実装を使用することもできます。

    Platform CLIでデプロイしたロード・バランサの使用の一環として、マスター・ノードにNGINXとkeepalivedをインストールすることで、ロード・バランサをコンテナベースでデプロイメントできるようにします。NGINXにより、マルチ・マスターKubernetesクラスタのリソース可用性と効率性が向上されます。keepalivedは、サービスとシステムを監視するために使用できます。また、問題発生時に自動的にスタンバイ・マスタ・ノードにフェイルオーバーするために使用できます。このマルチ・マスター・デプロイメント向けのロード・バランサをデプロイする際に、olcne-nginxサービスとkeepalivedサービスが有効化され、マスター・ノードで起動されます。

    Platform CLIでデプロイしたロード・バランサを使用するようにマスター・ノードを準備する方法の詳細は、3.4.3「ロード・バランサの設定」を参照してください。

  3. 単一マスター・デプロイメントと同じステップ(「第4章 Kubernetesクラスタの作成と管理を参照)を実行しますが、olcne module createコマンドに別のオプションを使用して、Platform CLIでデプロイしたロード・バランサの仮想IPアドレスか、独自のロード・バランサ・インスタンスのホスト名とポートを指定します。

    Platform CLIでデプロイしたロード・バランサを使用する場合は、--virtual-ipを使用してプライマリ・マスター・ノードに使用する仮想IPアドレスを設定します(例: --virtual-ip 192.0.2.100)。

    また、独自のロード・バランサの実装のホスト名とポートを設定する場合は、--load-balancerオプションを使用します(例: --load-balancer lb.example.com:6443)。

    マルチ・マスター・デプロイメントの場合は、--apiserver-advertise-addressオプションを含める必要はありません。

    次の例では、Platform CLIでデプロイしたロード・バランサを使用するマルチ・マスター・デプロイメントを作成します。仮想IPアドレス192.0.2.100は、プライマリ・マスター・ノードに使用されます。

    $ olcnectl --api-server 127.0.0.1:8091 module create --environment-name myenvironment \
      --module kubernetes --name mycluster \
      --container-registry container-registry.oracle.com/olcne \
      --virtual-ip 192.0.2.100
      --master-nodes master1.example.com:8090,master2.example.com:8090,master3.example.com:8090 \
      --worker-nodes worker1.example.com:8090,worker2.example.com:8090,worker3.example.com:8090,worker4.example.com:8090

    次の例では、独自のロード・バランサを使用するマルチ・マスター・デプロイメントを作成します。このロード・バランサは、ホストlb.example.comで使用可能になっていて、ポート6443で実行しているものです。

    $ olcnectl --api-server 127.0.0.1:8091 module create --environment-name myenvironment \
      --module kubernetes --name mycluster \
      --container-registry container-registry.oracle.com/olcne \
      --load-balancer lb.example.com:6443
      --master-nodes master1.example.com:8090,master2.example.com:8090,master3.example.com:8090 \
      --worker-nodes worker1.example.com:8090,worker2.example.com:8090,worker3.example.com:8090,worker4.example.com:8090
  4. モジュールの検証とインストールに進みます。第4章 Kubernetesクラスタの作成と管理を参照してください。