Menu Close

5.6. ポイズンピルオペレーターによるノードの修復

Poison Pill Operatorを使用して、異常なノードを自動的に再起動できます。この修復戦略は、ステートフルアプリケーションとReadWriteOnce(RWO)ボリュームのダウンタイムを最小限に抑え、一時的な障害が発生した場合に計算能力を回復します。

5.6.1. ポイズンピルオペレーターについて

Poison Pill Operatorはクラスターノードで実行され、異常と識別されたノードを再起動します。オペレーターは、 MachineHealthCheckコントローラーを使用して、クラスター内のノードの状態を検出します。ノードが異常であると識別されると、MachineHealthCheckリソースはPoisonPillRemediationカスタムリソース(CR)を作成し、 Poison PillOperatorをトリガーします。

Poison Pill Operator は、ステートフルアプリケーションのダウンタイムを最小限に抑え、一時的な障害が発生した場合に計算能力を回復します。この Operator は、IPMI や API などの管理インターフェースに関係なくノードをプロビジョニングするために使用できます。また、クラスターのインストールタイプ (インストーラーでプロビジョニングされたインフラストラクチャーやユーザーでプロビジョニングされたインフラストラクチャーなど) に関係なく使用できます。

5.6.1.1. ポイズンピルオペレーターの構成を理解する

Poison Pill Operatorは、 PoisonPillConfigの名前空間にpoison-pill-configという名前のPoisonPillConfigCRを作成します。このCRを編集できます。ただし、Poison PillOperatorの新しいCRを作成することはできません。

PoisonPillConfig CRを変更すると、PoisonPillデーモンセットが再作成されます。

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

apiVersion: poison-pill.medik8s.io/v1alpha1
kind: PoisonPillConfig
metadata:
  name: poison-pill-config
  namespace: openshift-operators
spec:
  safeTimeToAssumeNodeRebootedSeconds: 180 1
  watchdogFilePath: /test/watchdog1 2
  isSoftwareRebootEnabled: true 3
  apiServerTimeout: 15s 4
  apiCheckInterval: 5s 5
  maxApiErrorThreshold: 3 6
  peerApiServerTimeout: 5s 7
  peerDialTimeout: 5s 8
  peerRequestTimeout: 5s 9
  peerUpdateInterval: 15m 10
1
存続しているピアのタイムアウト期間を指定します。その後、オペレーターは異常なノードが再起動されたと見なすことができます。オペレーターは、この値の下限を自動的に計算します。ただし、ノードごとにウォッチドッグタイムアウトが異なる場合は、この値をより高い値に変更する必要があります。
2
ノード内のウォッチドッグデバイスのファイルパスを指定します。ウォッチドッグデバイスが使用できない場合、 PoisonPillConfigCRはソフトウェアの再起動を使用します。
3
異常なノードのソフトウェア再起動を有効にするかどうかを指定します。デフォルトでは、is Software Reboot Enabled の値は true に設定されています。ソフトウェアの再起動を無効にするには、パラメーター値を false に設定します。
4
各 API サーバーとの接続を確認するためのタイムアウト期間を指定します。この期間が経過すると、Operator は修復を開始します。
5
各 API サーバーとの接続を確認する頻度を指定します。
6
しきい値を指定します。このしきい値に達した後、ノードはピアへの接続を開始します。
7
ピア API サーバーとの接続のタイムアウト期間を指定します。
8
ピアとの接続を確立するためのタイムアウト期間を指定します。
9
ピアからレスポンスを取得するためのタイムアウト期間を指定します。
10
IP アドレスなどのピア情報を更新する頻度を指定します。

5.6.1.2. ウォッチドッグデバイスについて

ウォッチドッグデバイスは、次のいずれかになります。

  • 電源が独立しているハードウェアデバイス
  • 制御するホストと電源を共有するハードウェアデバイス
  • ソフトウェアまたは softdog に実装された仮想デバイス

ハードウェアウォッチドッグデバイスと softdog デバイスには、それぞれ電子タイマーまたはソフトウェアタイマーがあります。これらのウォッチドッグデバイスは、エラー状態が検出されたときにマシンが安全な状態になるようにするために使用されます。クラスターは、ウォッチドッグタイマーを繰り返しリセットして、正常な状態にあることを証明する必要があります。このタイマーは、デッドロック、CPU の枯渇、ネットワークまたはディスクアクセスの喪失などの障害状態が原因で経過する可能性があります。タイマーが時間切れになると、ウォッチドッグデバイスは障害が発生したと見なし、デバイスがノードの強制リセットをトリガーします。

ハードウェアウォッチドッグデバイスは、softdog デバイスよりも信頼性があります。

5.6.1.2.1. ウォッチドッグデバイスを使用した Poison Pill Operator の動作

Poison Pill Operator は、存在するウォッチドッグデバイスに基づいて修復ストラテジーを決定します。

ハードウェアウォッチドッグデバイスが設定されて使用可能である場合、Operator はそれを修復に使用します。ハードウェアウォッチドッグデバイスが設定されていない場合、Operator は修復のために softdog デバイスを有効にして使用します。

システムまたは設定のどちらかで、いずれのウォッチドッグデバイスもサポートされていない場合、Operator はソフトウェアの再起動を使用してノードを修復します。