5.13. 高可用性またはシングルノードのクラスターの検出およびサポート
OpenShift Container Platform クラスターは、複数のノードを使用する高可用性 (HA) モード、または単一ノードを使用する非 HA モードで設定できます。シングルノード OpenShift とも呼ばれるシングルノードクラスターには、より慎重なリソース制約がある可能性があります。したがって、単一ノードクラスターにインストールされた Operator がそれに応じて調整でき、正常に実行できることが重要です。
OpenShift Container Platform で提供されるクラスター高可用性モード API にアクセスすることにより、Operator の作成者は、Operator SDK を使用して、Operator がクラスターのインフラストラクチャートポロジー (HA モードまたは非 HA モード) を検出できるようにすることができます。カスタム Operator ロジックは、検出されたクラスタートポロジーを使用して、Operator およびそれが管理するオペランドまたはワークロードの両方のリソース要件を、トポロジーに最も適したプロファイルに自動的に切り替えるように開発することができます。
5.13.1. クラスターの高可用性モード API について リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform には、クラスターの高可用性モード API が同梱されており、Operator が使用して、インフラストラクチャートポロジーが検出できるようにします。インフラストラクチャー API は、インフラストラクチャーに関するクラスター全体の情報を保持します。Operator Lifecycle Manager(OLM) 管理の Operator は、高可用性モードに基づいてオペランドまたは管理ワークロードを異なる方法で設定する必要がある場合にインフラストラクチャー API を使用できます。
インフラストラクチャー API では、infrastructureTopology ステータスは、コントロールプレーンノードで実行されないインフラストラクチャーサービスの期待値を表します。通常、これは値が master 以外の ロール のノードセレクターでわかります。controlPlaneTopology ステータスは、通常コントロールプレーンノードで実行されるオペランドの期待値を表します。
ステータスがいずれの場合もデフォルト設定は HighlyAvailable で、複数ノードクラスターで Operator が行う動作を表します。SingleReplica 設定は単一ノード OpenShift としても知られる単一ノードクラスターで使用され、Operator はオペランドを高可用性の操作向けに設定すべきでないことを示します。
OpenShift Container Platform インストーラーは、以下のルールに従って、クラスターのレプリカ数に基づいて controlPlaneTopology と infrastructureTopology ステータスのフィールドを設定します。
-
コントロールプレーンのレプリカ数が 3 未満の場合には、
controlPlaneTopologyのステータスはSingleReplicaに設定されます。それ以外の場合は、HighlyAvailableに設定されます。 -
ワーカーレプリカ数が 0 の場合に、コントロールプレーンノードもワーカーとして設定されます。したがって、
infrastructureTopologyのステータスはcontrolPlaneTopologyステータスと同じです。 -
ワーカーレプリカ数が 1 の場合、
infrastructureTopologyはSingleReplicaに設定されます。それ以外の場合は、HighlyAvailableに設定されます。
5.13.2. Operator プロジェクトでの API 使用状況の例 リンクのコピーリンクがクリップボードにコピーされました!
Operator の作成者は、以下の例のように、通常の Kubernetes コンストラクトおよび controller-runtime ライブラリーを使用してインフラストラクチャー API にアクセスできるように Operator プロジェクトを更新できます。
controller-runtime ライブラリーの例
Kubernetes のコンストラクトの例