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


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

重要

Node Health Check Operator は、テクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat の実稼働環境におけるサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

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
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 を作成します。修復後、ノードのヘルスステータスはそれに応じて更新されます。

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

5.7.1.2. ノードのヘルスチェックによるマシンヘルスチェックの競合

ノードヘルスチェックとマシンヘルスチェックの両方が展開されている場合、ノードヘルスチェックはマシンヘルスチェックとの競合を回避します。

注記

Open Shift Container Platform は、machine-api-termination-handler をデフォルトの MachineHealthCheck リソースとしてデプロイします。

次のリストは、ノードヘルスチェックとマシンヘルスチェックが展開されたときのシステムの動作をまとめたものです。

  • デフォルトのマシンヘルスチェックのみが存在する場合、ノードヘルスチェックは引き続き異常なノードを識別します。ただし、ノードヘルスチェックは、Terminating 状態の異常なノードを無視します。デフォルトのマシンヘルスチェックは、異常なノードを Terminating 状態で処理します。

    ログメッセージの例

    INFO MHCChecker	ignoring unhealthy Node, it is terminating and will be handled by MHC	{"NodeName": "node-1.example.com"}

  • デフォルトのマシンヘルスチェックが変更された場合 (たとえば、unhealthyConditionsReady の場合)、または追加のマシンヘルスチェックが作成された場合、ノードヘルスチェックは無効になります。

    ログメッセージの例

    INFO controllers.NodeHealthCheck disabling NHC in order to avoid conflict with custom MHCs configured in the cluster {"NodeHealthCheck": "/nhc-worker-default"}

  • ここでも、デフォルトのマシンヘルスチェックのみが存在する場合、ノードヘルスチェックが再度有効になります。

    ログメッセージの例

    INFO controllers.NodeHealthCheck re-enabling NHC, no conflicting MHC configured in the cluster {"NodeHealthCheck": "/nhc-worker-default"}

5.7.2. Web コンソールを使用したノードヘルスチェックオペレーターのインストール

OpenShift Container Platform Web コンソールを使用して、ノードヘルスチェックオペレーターをインストールできます。

前提条件

  • cluster-admin 権限を持つユーザーとしてログインしている。

手順

  1. OpenShift Container Platform Web コンソールで、Operators OperatorHub ページに移動します。
  2. Node Health Check Operator を検索し、Installをクリックします。
  3. Operator が openshift-operators namespace にインストールされるように、Installation modenamespace のデフォルトの選択を維持します。
  4. Install をクリックします。

検証

インストールが正常に行われたことを確認するには、以下を実行します。

  1. Operators Installed Operators ページに移動します。
  2. Operator が openshift-operators の namespace 内に設置されていることと、その状態が Succeeded となっていることを確認してください。

Operator が正常にインストールされていない場合、以下を実行します。

  1. Operators Installed Operators ページに移動し、Status 列でエラーまたは失敗の有無を確認します。
  2. Workloads Podsページにナビゲートし、問題を報告している openshift-operators プロジェクトの Pod のログを確認します。

5.7.3. CLI を使用したノードヘルスチェックオペレーターのインストール

OpenShift CLI( oc ) を使用して、ノードヘルスチェックオペレーターをインストールできます。

前提条件

  • OpenShift CLI (oc) をインストールしている。
  • cluster-admin 権限を持つユーザーとしてログインしている。

手順

  1. ノードヘルスチェックオペレーターの Namespace カスタムリソース (CR) を作成します。

    1. NamespaceCR を定義し、YAML ファイルを保存します (例: node-health-check-namespace.yaml)。

      apiVersion: v1
      kind: Namespace
      metadata:
        name: openshift-operators
    2. NamespaceCR を作成するには、次のコマンドを実行します。

      $ oc create -f node-health-check-namespace.yaml
  2. OperatorGroup を作成します。

    1. OperatorGroup CR を定義し、YAML ファイルを保存します (例: node-health-check-operator-group.yaml)。

      apiVersion: operators.coreos.com/v1
      kind: OperatorGroup
      metadata:
        name: node-health-check-operator
        namespace: openshift-operators
      spec:
        targetNamespaces:
        - openshift-operators
    2. OperatorGroup CR を作成するには、次のコマンドを実行します。

      $ oc create -f node-health-check-operator-group.yaml
  3. SubscriptionCR を作成します。

    1. SubscriptionCR を定義し、YAML ファイルを保存します (例: node-health-check-subscription.yaml)。

      apiVersion: operators.coreos.com/v1alpha1
      kind: Subscription
      metadata:
          name: node-health-check-operator
          namespace: openshift-operators
      spec:
          channel: alpha
          name: node-healthcheck-operator
          source: redhat-operators
          sourceNamespace: openshift-marketplace
          package: node-health-check-operator
    2. SubscriptionCR を作成するには、次のコマンドを実行します。

      $ oc create -f node-health-check-subscription.yaml

検証

  1. CSV リソースを調べて、インストールが成功したことを確認します。

    $ oc get csv -n openshift-operators

    出力例

    NAME                               DISPLAY                      VERSION   REPLACES   PHASE
    node-health-check-operator.v0.1.1  Node Health Check Operator   0.1.1                Succeeded

  2. Node Health CheckOperator が稼働していることを確認します。

    $ oc get deploy -n openshift-operators

    出力例

    NAME                                           READY   UP-TO-DATE   AVAILABLE   AGE
    node-health-check-operator-controller-manager  1/1     1            1           10d

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.