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) を作成します。NamespaceCR を定義し、YAML ファイルを保存します (例:poison-pill-namespace.yaml)。apiVersion: v1 kind: Namespace metadata: name: poison-pill
apiVersion: v1 kind: Namespace metadata: name: poison-pillCopy to Clipboard Copied! Toggle word wrap Toggle overflow NamespaceCR を作成するには、次のコマンドを実行します。oc create -f poison-pill-namespace.yaml
$ oc create -f poison-pill-namespace.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
OperatorGroupを作成します。OperatorGroupCR を定義し、YAML ファイルを保存します (例:poison-pill-operator-group.yaml)。Copy to Clipboard Copied! Toggle word wrap Toggle overflow OperatorGroupCR を作成するには、次のコマンドを実行します。oc create -f poison-pill-operator-group.yaml
$ oc create -f poison-pill-operator-group.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
SubscriptionCR を作成します。SubscriptionCR を定義し、YAML ファイル (poison-pill-subscription.yamlなど) を保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow SubscriptionCR を作成するには、次のコマンドを実行します。oc create -f poison-pill-subscription.yaml
$ oc create -f poison-pill-subscription.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
CSV リソースを調べて、インストールが成功したことを確認します。
oc get csv -n poison-pill
$ oc get csv -n poison-pillCopy 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 SucceededCopy to Clipboard Copied! Toggle word wrap Toggle overflow Poison PillOperator が稼働していることを確認します。
oc get deploy -n poison-pill
$ oc get deploy -n poison-pillCopy 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 10dCopy to Clipboard Copied! Toggle word wrap Toggle overflow Poison PillOperator が
PoisonPillConfigCR を作成したことを確認します。oc get PoisonPillConfig -n poison-pill
$ oc get PoisonPillConfig -n poison-pillCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME AGE poison-pill-config 10d
NAME AGE poison-pill-config 10dCopy to Clipboard Copied! Toggle word wrap Toggle overflow 各ポイズンピル Pod がスケジュールされ、各ワーカーノードで実行されていることを確認します。
oc get daemonset -n poison-pill
$ oc get daemonset -n poison-pillCopy 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> 10dCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記このコマンドは、コントロールプレーンノードではサポートされていません。
5.6.4. ポイズンピルオペレーターを使用するためのマシンヘルスチェックの設定 リンクのコピーリンクがクリップボードにコピーされました!
次の手順を使用して、Poison PillOperator を修復プロバイダーとして使用するようにマシンヘルスチェックを設定します。
前提条件
-
OpenShift CLI (
oc) をインストールしている。 -
cluster-admin権限を持つユーザーとしてログインしている。
手順
PoisonPillRemediationTemplateCR を作成します。PoisonPillRemediationTemplateを定義します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow PoisonPillRemediationTemplateCR を作成するには、次のコマンドを実行します。oc create -f <ppr-name>.yaml
$ oc create -f <ppr-name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
PoisonPillRemediationTemplateCR を指すようにMachineHealthCheckCR を作成または更新します。MachineHealthCheckを定義または更新します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 修復テンプレートの詳細を指定します。
MachineHealthCheckCR を作成するには、次のコマンドを実行します。oc create -f <file-name>.yaml
$ oc create -f <file-name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow MachineHealthCheckCR を更新するには、次のコマンドを実行します。oc apply -f <file-name>.yaml
$ oc apply -f <file-name>.yamlCopy 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. 失敗した修復 リンクのコピーリンクがクリップボードにコピーされました!
- 問題
- 不健康なノードは修正されませんでした。
- 解決策
次のコマンドを実行して、
PoisonPillRemediationCR が作成されたことを確認します。oc get ppr -A
$ oc get ppr -ACopy to Clipboard Copied! Toggle word wrap Toggle overflow ノードが不健康になったときに
MachineHealthCheckコントローラーがPoisonPillRemediationCR を作成しなかった場合は、MachineHealthCheckコントローラーのログを確認してください。さらに、MachineHealthCheckCR に、修復テンプレートを使用するために必要な仕様が含まれていることを確認してください。PoisonPillRemediationCR が作成された場合は、その名前が異常なノードまたはマシンオブジェクトと一致することを確認してください。
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