5.8. ノードの非正常なシャットダウン後に CSI ボリュームを切り離す
この機能により、ノードが正常にダウンしなかった場合に、コンテナーストレージインターフェイス (CSI) ドライバーがボリュームを自動的に切り離すことができます。
非正常なノードシャットダウン後の CSI ボリュームの接続解除は、テクノロジープレビューのみの機能です。テクノロジープレビュー機能は、Red Hat 製品サポートのサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではない場合があります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
5.8.1. 概要
正常なノードシャットダウンは、kubelet のノードシャットダウンマネージャーが今後のノードシャットダウンアクションを検出したときに発生します。非正常なシャットダウンは、kubelet がノードのシャットダウンアクションを検出しない場合に発生します。これは、システムまたはハードウェアの障害が原因で発生する可能性があります。また、shutdown コマンドが Linux 上の kubelet で使用される Inhibitor Locks メカニズムをトリガーしない場合、またはユーザーエラー (たとえば shutdownGracePeriod および shutdownGracePeriodCriticalPods の詳細が正しく設定されていない場合) が原因で、kubelet はノードのシャットダウンアクションを検出できないことがあります。そのノード。
この機能を使用すると、非正常なノードのシャットダウンが発生したときに、ノードに out-of-service
テイントを手動で追加して、ボリュームをノードから自動的に切断できるようにすることができます。
5.8.2. 自動ボリューム切断のためにサービス外テイントを手動で追加する
前提条件
- クラスター管理者権限でクラスターにアクセスできる。
手順
非正常なノードのシャットダウン後にボリュームがノードから自動的に切り離されるようにするには、次の手順を実行します。
- ノードが異常であると検出されたら、ワーカーノードをシャットダウンします。
次のコマンドを実行してステータスを確認し、ノードがシャットダウンされていることを確認します。
oc get node <node name> 1
- 1
- <node name> = 正常にシャットダウンされていないノードの名前
重要ノードが完全にシャットダウンされていない場合は、ノードのテイントを続行しないでください。ノードがまだ稼働していてテイントが適用されると、ファイルシステムの破損が発生する可能性があります。
次のコマンドを実行して、対応するノードオブジェクトをテイントします。
oc adm taint node <node name> node.kubernetes.io/out-of-service=nodeshutdown:NoExecute 1
- 1
- <node name> = 正常にシャットダウンされていないノードの名前
テイントが適用されると、ボリュームはシャットダウンノードから切り離され、ディスクを別のノードに接続できるようになります。
例
結果の YAML ファイルは次のようになります。
spec: taints: - effect: NoExecute key: node.kubernetes.io/out-of-service value: nodeshutdown
- ノードを再起動します。
- 汚れを取り除きます。