This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.5.6. ポイズンピルオペレーターによるノードの修復
Poison Pill Operator を使用して、異常なノードを自動的に再起動できます。この修復戦略は、ステートフルアプリケーションと ReadWriteOnce(RWO) ボリュームのダウンタイムを最小限に抑え、一時的な障害が発生した場合に計算能力を回復します。
5.6.1. ポイズンピルオペレーターについて リンクのコピーリンクがクリップボードにコピーされました!
Poison Pill Operator はクラスターノードで実行され、異常と識別されたノードを再起動します。オペレーターは、 MachineHealthCheck
コントローラーを使用して、クラスター内のノードの状態を検出します。ノードが異常であると識別されると、MachineHealthCheck
リソースは PoisonPillRemediation
カスタムリソース (CR) を作成し、 Poison PillOperator をトリガーします。
ポイズンピルオペレーターは、次の機能を提供します。
- ステートフルアプリケーションのダウンタイムを最小限に抑え、一時的な障害が発生した場合に計算能力を回復します。
- ノードをプロビジョニングするための IPMI や API などの管理インターフェイスから独立しています。
5.6.1.1. ポイズンピルオペレーターの設定を理解する リンクのコピーリンクがクリップボードにコピーされました!
Poison Pill Operator は、 PoisonPillConfig
の名前空間に poison-pill-config
という名前の PoisonPillConfigCR を作成します。この CR を編集できます。ただし、Poison PillOperator の新しい CR を作成することはできません。
PoisonPillConfig
CR を変更すると、PoisonPill デーモンセットが再作成されます。
PoisonPillConfig
CR は、次の YAML ファイルに似ています。
5.6.2. Web コンソールを使用した PoisonPillOperator のインストール リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform Web コンソールを使用して、Poison PillOperator をインストールできます。
前提条件
-
cluster-admin
権限を持つユーザーとしてログインしている。
手順
-
OpenShift Container Platform Web コンソールで、Operators
OperatorHub ページに移動します。 - 使用可能なオペレーターのリストからポイズンピルオペレーターを検索し、Installをクリックします。
-
Installation modeとnamespaceのデフォルトの選択を維持して、Operator が
poison-pill
名前空間にインストールされるようにします。 - Install をクリックします。
検証
インストールが正常に行われたことを確認するには、以下を実行します。
-
Operators
Installed Operators ページに移動します。 -
オペレータは
poison-pill
名前空間内に設置され、そのステータスがSucceeded
になったことを確認してください。
Operator が正常にインストールされていない場合、以下を実行します。
-
Operators
Installed Operators ページに移動し、 Status
列でエラーまたは失敗の有無を確認します。 -
Workloads
Podsページに移動し、問題を報告している poison-pill-controller-manager
プロジェクトの Pod のログを確認します。
5.6.3. CLI を使用した PoisonPillOperator のインストール リンクのコピーリンクがクリップボードにコピーされました!
OpenShift CLI(oc
) を使用して、Poison PillOperator をインストールできます。
前提条件
-
OpenShift CLI (
oc
) をインストールしている。 -
cluster-admin
権限を持つユーザーとしてログインしている。
手順
Poison Pill Operator の
Namespace
カスタムリソース (CR) を作成します。Namespace
CR を定義し、YAML ファイルを保存します (例:poison-pill-namespace.yaml
)。apiVersion: v1 kind: Namespace metadata: name: poison-pill
apiVersion: v1 kind: Namespace metadata: name: poison-pill
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Namespace
CR を作成するには、次のコマンドを実行します。oc create -f poison-pill-namespace.yaml
$ oc create -f poison-pill-namespace.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
OperatorGroup
を作成します。OperatorGroup
CR を定義し、YAML ファイルを保存します (例:poison-pill-operator-group.yaml
)。Copy to Clipboard Copied! Toggle word wrap Toggle overflow OperatorGroup
CR を作成するには、次のコマンドを実行します。oc create -f poison-pill-operator-group.yaml
$ oc create -f poison-pill-operator-group.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Subscription
CR を作成します。Subscription
CR を定義し、YAML ファイル (poison-pill-subscription.yaml
など) を保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Subscription
CR を作成するには、次のコマンドを実行します。oc create -f poison-pill-subscription.yaml
$ oc create -f poison-pill-subscription.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
CSV リソースを調べて、インストールが成功したことを確認します。
oc get csv -n poison-pill
$ oc get csv -n poison-pill
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME DISPLAY VERSION REPLACES PHASE poison-pill.v0.1.4 Poison Pill Operator 0.1.4 Succeeded
NAME DISPLAY VERSION REPLACES PHASE poison-pill.v0.1.4 Poison Pill Operator 0.1.4 Succeeded
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Poison PillOperator が稼働していることを確認します。
oc get deploy -n poison-pill
$ oc get deploy -n poison-pill
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY UP-TO-DATE AVAILABLE AGE poison-pill-controller-manager 1/1 1 1 10d
NAME READY UP-TO-DATE AVAILABLE AGE poison-pill-controller-manager 1/1 1 1 10d
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Poison PillOperator が
PoisonPillConfig
CR を作成したことを確認します。oc get PoisonPillConfig -n poison-pill
$ oc get PoisonPillConfig -n poison-pill
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME AGE poison-pill-config 10d
NAME AGE poison-pill-config 10d
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 各ポイズンピル Pod がスケジュールされ、各ワーカーノードで実行されていることを確認します。
oc get daemonset -n poison-pill
$ oc get daemonset -n poison-pill
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE poison-pill-ds 2 2 2 2 2 <none> 10d
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE poison-pill-ds 2 2 2 2 2 <none> 10d
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記このコマンドは、コントロールプレーンノードではサポートされていません。
5.6.4. ポイズンピルオペレーターを使用するためのマシンヘルスチェックの設定 リンクのコピーリンクがクリップボードにコピーされました!
次の手順を使用して、Poison PillOperator を修復プロバイダーとして使用するようにマシンヘルスチェックを設定します。
前提条件
-
OpenShift CLI (
oc
) をインストールしている。 -
cluster-admin
権限を持つユーザーとしてログインしている。
手順
PoisonPillRemediationTemplate
CR を作成します。PoisonPillRemediationTemplate
を定義します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow PoisonPillRemediationTemplate
CR を作成するには、次のコマンドを実行します。oc create -f <ppr-name>.yaml
$ oc create -f <ppr-name>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
PoisonPillRemediationTemplate
CR を指すようにMachineHealthCheck
CR を作成または更新します。MachineHealthCheck
を定義または更新します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 修復テンプレートの詳細を指定します。
MachineHealthCheck
CR を作成するには、次のコマンドを実行します。oc create -f <file-name>.yaml
$ oc create -f <file-name>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow MachineHealthCheck
CR を更新するには、次のコマンドを実行します。oc apply -f <file-name>.yaml
$ oc apply -f <file-name>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.6.5. ポイズンピルオペレーターのトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
5.6.5.1. 一般的なトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
- 問題
- ポイズンピルオペレーターの問題をトラブルシューティングしたいと考えています。
- 解決策
- オペレーターログを確認してください。
5.6.5.2. デーモンセットの確認 リンクのコピーリンクがクリップボードにコピーされました!
- 問題
- Poison Pill Operator はインストールされていますが、デーモンセットは使用できません。
- 解決策
- エラーまたは警告がないか、オペレーターログを確認してください。
5.6.5.3. 失敗した修復 リンクのコピーリンクがクリップボードにコピーされました!
- 問題
- 不健康なノードは修正されませんでした。
- 解決策
次のコマンドを実行して、
PoisonPillRemediation
CR が作成されたことを確認します。oc get ppr -A
$ oc get ppr -A
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ノードが不健康になったときに
MachineHealthCheck
コントローラーがPoisonPillRemediation
CR を作成しなかった場合は、MachineHealthCheck
コントローラーのログを確認してください。さらに、MachineHealthCheck
CR に、修復テンプレートを使用するために必要な仕様が含まれていることを確認してください。PoisonPillRemediation
CR が作成された場合は、その名前が異常なノードまたはマシンオブジェクトと一致することを確認してください。
5.6.5.4. Poison Pill Operator をアンインストールした後でも、デーモンセットおよびその他の Poison Pill Operator リソースが存在する リンクのコピーリンクがクリップボードにコピーされました!
- 問題
- Poison Pill Operator のリソース (デーモンセット、設定 CR、修復テンプレート CR など) は、Operator をアンインストールした後も存在します。
- 解決策
Poison Pill Operator リソースを削除するには、リソースタイプごとに次のコマンドを実行してリソースを削除します。
oc delete ds <poison-pill-ds> -n <namespace>
$ oc delete ds <poison-pill-ds> -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc delete ppc <poison-pill-config> -n <namespace>
$ oc delete ppc <poison-pill-config> -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc delete pprt <poison-pill-remediation-template> -n <namespace>
$ oc delete pprt <poison-pill-remediation-template> -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow