機械翻訳について

7 高可用性クラスタ

この章では、Oracle Cloud Native Environmentを使用してデプロイできる高可用性(HA) Kubernetesクラスタのタイプに関する概要について説明します。

Kubernetesは、コントロール・プレーン・ノードの複数のレプリカを使用してデプロイできます。 これらのレプリカへの自動フェイルオーバーにより、よりスケーラブルで回復性の高いサービスが提供されます。 このドキュメントでは、このタイプのクラスタ・デプロイメントをHAクラスタと呼びます。

重要:

HAクラスタを作成するには、少なくとも3つのコントロール・プレーン・ノードと2つのワーカー・ノードが必要です。

3つのコントロール・プレーン・ノードを持つHAクラスタを作成すると、分散キー・ストアetcdを介して構成データのレプリケーションが保証されるため、HAクラスタは、データや稼働時間を失うことなく、単一のコントロール・プレーン・ノードに障害が発生します。 複数のコントロール・プレーン・ノードに障害が発生した場合、データの損失を回避するために、クラスタ内のコントロール・プレーン・ノードをバックアップ・ファイルからリストアできます。

Oracle Cloud Native Environmentは、Kubernetesスタックetcdトポロジを実装します。etcdは、コントロール・プレーン・ノードで実行されます。 このトポロジの詳細は、「アップストリームのドキュメント」を参照してください。

ロード・バランサ

HAクラスタには、コントロール・プレーンのノードの高可用性を提供するロード・バランサが必要です。 ロード・バランサは、Kubernetes APIサーバーと通信して、コントロール・プレーン・ノードの高可用性を維持します。

外部ロード・バランサ・インスタンス、クラウド・インフラストラクチャによって提供されるロード・バランサを使用するか、Platform CLIでロード・バランサをコントロール・プレーン・ノードにインストールできます。

ロード・バランサの構成要件の詳細は、「インストール」を参照してください。

 外部ロード・バランサを使用する高可用性クラスタ

外部ロード・バランサを使用するようにHAクラスタを設定する場合、ロード・バランサを使用してコントロール・プレーン・ノードのリソースの可用性と効率を管理し、コントロール・プレーン・ノードのKubernetes API Serverのインスタンスがクラスタの可用性に影響を与えずに失敗することを確認します。

外部ロード・バランサを使用するには、HAクラスタ・デプロイメントを実行する前に、外部ロード・バランサを設定して使用する準備ができている必要があります。 ロード・バランサのホスト名とポートは、Kubernetesモジュールの作成時にオプションとして入力します。

クラウド・インフラストラクチャによって提供されるロード・バランサ(Oracle Cloud Infrastructureロード・バランサなど)も使用できます。 また、Kubernetesモジュールを作成する前に、設定して使用できるようにしておく必要があります。

 内部ロード・バランサを使用する高可用性クラスタ

内部ロード・バランサを使用するようにHAクラスタを設定すると、Platform CLIによってNGINXおよびKeepalivedがコントロール・プレーン・ノードにインストールされ、ロード・バランサのコンテナベースのデプロイメントが有効になります。 内部ロード・バランサは、Kubernetes APIサーバーのネイティブのアクティブ/アクティブ高可用性ソリューションを構成します。

NGINXにより、コントロール・プレーン・ノードのリソースの可用性と効率が向上し、コントロール・プレーン・ノードのKubernetes APIサーバーのインスタンスが、クラスタの可用性に影響を与えずに障害が発生する可能性があります。

内部ロード・バランサを使用する場合は、仮想IPアドレスとして使用するためにコントロール・プレーン・ネットワーク上のIPアドレスを確保する必要があります。 Keepalivedインスタンスは、他のコントロール・プレーン・ノードの状態をモニタリングし、ノードに障害が発生した場合はそのIPアドレスを適用することで、仮想IPアドレスに常に到達できるようにします。 Keepalivedは、問題が発生した場合にスタンバイ・コントロール・プレーン・ノードに自動的にフェイルオーバーするために使用されます。

内部ロード・バランサのデプロイの一環として、コントロール・プレーン・ノードでolcne-nginxサービスおよびkeepalivedサービスが有効化され、起動されます。