Menu Close

5.7. Node Health CheckOperatorを使用したノードヘルスチェックのデプロイ

Node Health Check Operatorを使用して、 NodeHealthCheckコントローラーをデプロイします。コントローラは、正常ではないノードを識別し、Poison PillOperatorを使用して、正常ではないノードを修正します。

重要

Node Health Check Operatorは、テクノロジープレビュー機能のみです。テクノロジープレビュー機能は Red Hat の実稼働環境でのサービスレベルアグリーメント (SLA) ではサポートされていないため、Red Hat では実稼働環境での使用を推奨していません。Red Hat は実稼働環境でこれらを使用することを推奨していません。これらの機能は、近々発表予定の製品機能をリリースに先駆けてご提供することにより、お客様は機能性をテストし、開発プロセス中にフィードバックをお寄せいただくことができます。

Red Hat のテクノロジープレビュー機能のサポート範囲についての詳細は、https://access.redhat.com/ja/support/offerings/techpreview/ を参照してください。

5.7.1. ノードヘルスチェックオペレーターについて

Node Health Check Operatorは、NodeHealthCheckコントローラーをデプロイします。これにより、 NodeHealthCheckカスタムリソース(CR)が作成されます。Node Health Check Operatorは、デフォルトの修復プロバイダーとしてPoison PillOperatorもインストールします。

オペレーターは、コントローラーを使用して、クラスター内のノードの正常性を検出します。コントローラは、 NodeHealthCheckカスタムリソース(CR)を作成します。これは、ノードの状態を判断するための一連の基準としきい値を定義します。

ノードヘルスチェックが異常なノードを検出すると、修復プロバイダーをトリガーする修復CRを作成します。たとえば、ノードヘルスチェックはPoisonPillRemediation CRを作成します。これにより、Poison PillOperatorが異常なノードを修復します。

NodeHealthCheck CRは、次のYAMLファイルに似ています。

apiVersion: remediation.medik8s.io/v1alpha1
kind: NodeHealthCheck
metadata:
  name: nodehealthcheck-sample
  namespace: openshift-operators
spec:
  minHealthy: 51% 1
  pauseRequests: 2
    - <pause-test-cluster>
  remediationTemplate: 3
    apiVersion: poison-pill.medik8s.io/v1alpha1
    name: group-x
    namespace: openshift-operators
    kind: PoisonPillRemediationTemplate
  selector: 4
    matchExpressions:
      - key: node-role.kubernetes.io/worker
        operator: Exists
  unhealthyConditions: 5
    - type: Ready
      status: "False"
      duration: 300s 6
    - type: Ready
      status: Unknown
      duration: 300s 7
1
ターゲットプールで同時に修復できるノードの量(パーセンテージ)を指定します。正常なノードの数がminHealthyで設定された制限以上の場合、修復が行われます。デフォルト値は51%です。
2
新しい修復が開始されないようにし、進行中の修復を継続できるようにします。デフォルト値は空です。ただし、修復を一時停止する原因を特定する文字列の配列を入力できます。たとえば、 pause-test-cluster
注記

アップグレードプロセス中に、クラスター内のノードが一時的に使用できなくなり、異常として識別される場合があります。ワーカーノードの場合、オペレーターはクラスターがアップグレード中であることを検出すると、新しい異常なノードの修正を停止して、そのようなノードが再起動しないようにします。

3
修復プロバイダーからの修復テンプレートを指定します。たとえば、ポイズンピルオペレーターから。
4
チェックするラベルまたは式に一致するselectorを指定します。デフォルト値は空で、すべてのノードが選択されます。
5
ノードが異常と見なされるかどうかを決定する条件のリストを指定します。
6 7
ノード条件のタイムアウト期間を指定します。タイムアウトの期間中に条件が満たされた場合、ノードは修正されます。タイムアウトが長いと、異常なノードのワークロードで長期間のダウンタイムが発生する可能性があります。

5.7.1.1. ノードヘルスチェックオペレーターのワークフローを理解する

ノードが異常であると識別されると、オペレーターは他にいくつのノードが異常であるかをチェックします。健康なノードの数がNodeHealthCheck CRのminHealthyフィールドで指定された量を超えた場合、コントローラは、修復プロバイダによって外部の修復テンプレートで提供される詳細から修復CRを作成します。修復後、ノードのヘルスステータスはそれに応じて更新されます。

ノードが正常になると、コントローラーは外部修復テンプレートを削除し、ノードの正常状態を更新します。