検索

5.8. ノードの非正常なシャットダウン後に CSI ボリュームを切り離す

download PDF

この機能により、ノードが正常にダウンしなかった場合に、コンテナーストレージインターフェイス (CSI) ドライバーがボリュームを自動的に切り離すことができます。

5.8.1. 概要

正常なノードシャットダウンは、kubelet のノードシャットダウンマネージャーが今後のノードシャットダウンアクションを検出したときに発生します。非正常なシャットダウンは、kubelet がノードのシャットダウンアクションを検出しない場合に発生します。これは、システムまたはハードウェアの障害が原因で発生する可能性があります。また、shutdown コマンドが Linux 上の kubelet で使用される Inhibitor Locks メカニズムをトリガーしない場合、またはユーザーエラー (たとえば shutdownGracePeriod および shutdownGracePeriodCriticalPods の詳細が正しく設定されていない場合) が原因で、kubelet はノードのシャットダウンアクションを検出できないことがあります。そのノード。

この機能を使用すると、非正常なノードのシャットダウンが発生したときに、ノードに out-of-service テイントを手動で追加して、ボリュームをノードから自動的に切断できるようにすることができます。

5.8.2. 自動ボリューム切断のためにサービス外テイントを手動で追加する

前提条件

  • クラスター管理者権限でクラスターにアクセスできる。

手順

非正常なノードのシャットダウン後にボリュームがノードから自動的に切り離されるようにするには、次の手順を実行します。

  1. ノードが異常であると検出されたら、ワーカーノードをシャットダウンします。
  2. 次のコマンドを実行してステータスを確認し、ノードがシャットダウンされていることを確認します。

    oc get node <node name> 1
    1
    <node name> = 正常にシャットダウンされていないノードの名前
    重要

    ノードが完全にシャットダウンされていない場合は、ノードのテイントを続行しないでください。ノードがまだ稼働していてテイントが適用されると、ファイルシステムの破損が発生する可能性があります。

  3. 次のコマンドを実行して、対応するノードオブジェクトをテイントします。

    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
  4. ノードを再起動します。
  5. 汚れを取り除きます。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.