10.2. 接続ヘルスチェックの実装
接続チェックコントローラーは、クラスター内の接続検証チェックをオーケストレーションします。接続テストの結果は、openshift-network-diagnostics namespace の PodNetworkConnectivity オブジェクトに保存されます。接続テストは、1 分ごとに並行して実行されます。
Cluster Network Operator (CNO) は、接続性ヘルスチェックを送受信するためにいくつかのリソースをクラスターにデプロイします。
- ヘルスチェックのソース
-
このプログラムは、
Deploymentオブジェクトで管理される単一の Pod レプリカセットにデプロイします。このプログラムはPodNetworkConnectivityオブジェクトを消費し、各オブジェクトで指定されるspec.targetEndpointに接続されます。 - ヘルスチェックのターゲット
- クラスターのすべてのノードにデーモンセットの一部としてデプロイされた Pod。Pod はインバウンドのヘルスチェックをリッスンします。すべてのノードにこの Pod が存在すると、各ノードへの接続をテストすることができます。
ノードセレクターを使用して、ネットワーク接続ソースとターゲットが実行されるノードを設定できます。さらに、ソース Pod とターゲット Pod で許容できる tolerations を指定することもできます。この設定は、config.openshift.io/v1 API グループの Network API のシングルトン cluster カスタムリソースで定義されます。
Pod のスケジュールは、設定を更新した後に実行されます。したがって、設定を更新する前に、セレクターで使用する予定のノードラベルを適用する必要があります。ネットワーク接続チェック Pod の配置を更新した後に適用されたラベルは無視されます。
次の YAML のデフォルト設定を参照してください。
接続ソースおよびターゲット Pod のデフォルト設定
- 1 1
- ネットワーク診断設定を指定します。値が指定されていないか、空のオブジェクトが指定されており、
clusterという名前のnetwork.operator.openshift.ioカスタムリソースでspec.disableNetworkDiagnostics=trueが設定されている場合、ネットワーク診断は無効になります。設定されている場合、この値はspec.disableNetworkDiagnostics=trueをオーバーライドします。 - 2
- 診断モードを指定します。値は、空の文字列、
All、またはDisabledです。空の文字列はAllを指定するのと同じです。 - 3
- オプション: 接続チェックのソース Pod のセレクターを指定します。
nodeSelectorおよびtolerationsフィールドを使用して、sourceNodePod をさらに指定できます。これらはソース Pod とターゲット Pod の両方についてはオプションです。これらは省略するか、両方を使用するか、どちらか 1 つだけを使用できます。 - 4
- オプション: 接続チェックのターゲット Pod のセレクターを指定します。
nodeSelectorおよびtolerationsフィールドを使用して、targetNodePod をさらに指定できます。これらはソース Pod とターゲット Pod の両方についてはオプションです。これらは省略するか、両方を使用するか、どちらか 1 つだけを使用できます。