この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。

ノードとマシンプール

RancherでKubernetesクラスターを起動した後、クラスターの*ノード*タブから個々のノードを管理できます。

  1. 左上隅の*☰*をクリックします。

  2. *クラスター管理*を選択します。

  3. 管理したいノードを持つクラスターを見つけ、行末にある*Explore*ボタンをクリックします。

  4. 左側のナビゲーションから*ノード*を選択します。

クラスターをプロビジョニングするために使用されるオプションに応じて、利用可能なノードオプションが異なります。

個々のノードではなく_クラスター_を管理したい場合は、xref:[クラスターの編集]を参照してください。

各クラスター作成オプションに利用可能なノードオプション

以下の表は、Rancherの各タイプのクラスターに対して利用可能なノードオプションを示しています。各機能に関する詳細情報は、*オプション*列のリンクをクリックしてください。

オプション インフラストラクチャプロバイダーによってホストされるノード カスタムノード ホスト型クラスター 登録済みEKSノード その他すべての登録ノード 説明

コードン

ノードをスケジュール不可としてマークします。

ドレイン

ノードをスケジュール不可としてマークし、すべてのポッドを退避させます。

次のファイルを編集します。

ノードのカスタム名、説明、ラベル、またはテイントを入力してください。

APIを表示

APIデータを表示します。

削除

*

*

クラスターから不良ノードを削除します。

キーをダウンロード

ノードにSSH接続するためのSSHキーをダウンロードします。

ノードのスケーリング

ノードプール内のノードの数を増減させます。

  • APIを表示からアクセス可能な削除オプション

インフラストラクチャプロバイダーによってホストされているノード

マシンプールは、インフラストラクチャプロバイダーにホストされているノードにRancherが起動したKubernetesクラスターをプロビジョニングする際に利用可能です。

ホストされたKubernetesプロバイダーによってプロビジョニングされたノード

Kubernetesプロバイダーによってホストされているノードを管理するオプションは、Rancherではやや制限されています。ノードの数を増減させるなどの編集をRancher UIを使用する代わりに、クラスターを直接編集してください。

[登録済みのノード]

Rancherを使用して登録されたクラスターにワークロードをデプロイできますが、個々のクラスターのノードを管理することはできません。インポートされたクラスターのノードの管理は、すべてRancherの外部で行う必要があります。

個々のノードの管理と編集

ノードを編集すると、次のことができます:

個々のノードを管理するには、管理したいクラスターに移動し、メインメニューから*ノード*を選択します。ノードの*⋮アイコン(..*)をクリックすることで、そのノードのオプションメニューを開くことができます。

Rancher APIでノードを表示する

このオプションを選択すると、ノードのAPIエンドポイントを表示できます。

ノードの削除

*削除*を使用して、クラウドプロバイダから障害のあるノードを削除します。

障害のあるノードを削除すると、ノードがマシンプールにあり、自動置換が有効の場合、Rancherは同じようにプロビジョニングされたノードで自動的に置き換えることができます。

クラスターがインフラストラクチャプロバイダによってホストされている場合、障害のあるノードを削除する代わりにクラスターを縮小したい場合は、スケールダウンを選択してください。

ノードのスケーリング

インフラストラクチャプロバイダによってホストされているノードの場合、スケールコントロールを使用して各マシンプールのノード数をスケールできます。このオプションは、他のクラスタタイプには使用できません。

インフラストラクチャプロバイダによってホストされているノードにSSH接続する

インフラストラクチャプロバイダによってホストされているノードの場合、リモートでデスクトップから接続できるようにSSHキーをダウンロードするオプションがあります。

  1. 左上隅で、*☰ > クラスター管理*をクリックします。

  2. *クラスター*ページで、ノードにSSH接続したいクラスターに移動し、クラスターの名前をクリックします。

  3. マシンプール*タブで、リモート接続したいノードを見つけ、⋮ > SSHキーをダウンロード*をクリックします。SSHに使用されるファイルを含むZIPファイルがダウンロードされます。

  4. ZIPファイルを任意の場所に展開します。

  5. ターミナルを開きます。抽出したZIPファイルの場所に移動します。

  6. 次のコマンドを入力します。

     ssh -i id_rsa root@<IP_OF_HOST>

ノードのコーデン

_コードン_を実行すると、ノードがスケジュール不可としてマークされます。この機能は、再起動、アップグレード、廃止などの短時間での保守期間中にノードで短いタスクを実行するために役立ちます。作業が完了したら、電源を再投入し、ノードを再びスケジュール可能にするためにコーデンを解除します。

ノードの排出

_排出_は、最初にノードをコーデンし、その後すべてのポッドを退避させるプロセスです。この機能は、(カーネルアップグレードやハードウェア保守のような)ノードの保守を実行するのに役立ちます。新しいポッドがノードにデプロイされるのを防ぎつつ、既存のポッドを再配布することで、ユーザーがサービスの中断を経験しないようにします。

  • レプリカセットを持つポッドの場合、ポッドは新しいノードにスケジュールされる新しいポッドに置き換えられます。また、ポッドがサービスの一部である場合、クライアントは自動的に新しいポッドにリダイレクトされます。

  • レプリカセットを持たないポッドの場合、新しいポッドのコピーを立ち上げる必要があり、サービスの一部でない場合はクライアントをそれにリダイレクトします。

cordoned または active の状態にあるノードを排出できます。ノードを排出すると、ノードがコーデン(スケジューリング不可)状態になり、排出のために満たすべき条件が評価され、その後(条件を満たす場合)ノードはポッドを追い出します。

ただし、排出を開始する際に条件を上書きすることができます。また、猶予期間とタイムアウト値を設定する機会が与えられます。

攻撃的および安全な排出オプション

クラスターのアップグレード戦略を構成する際に、ノードの排出を有効にすることができます。ノードの排出が有効になっている場合、ポッドが削除され再スケジュールされる方法を構成できます。

  • 攻撃的モード

    このモードでは、コントローラがない場合でも、ポッドは新しいノードに再スケジュールされることはありません。Kubernetesは、これらのポッドの削除を処理する独自のロジックを持つことを期待しています。

    また、Kubernetesでは、emptyDirを使用したポッドの処理を決定するために、この実装も想定しています。ポッドがemptyDirを使用してローカルデータを格納している場合、ポッドがノードから削除されるとemptyDirのデータが削除されるため、そのデータを安全に削除できない可能性があります。攻撃的モードを選択すると、これらのポッドが削除されます。

  • Safe Mode

    ノードにスタンドアロンポッドまたはエフェメラルデータがある場合、ノードは遮断されますが、ドレインされません。

猶予期間

各ポッドが正常に終了できるようにクリーンアップのために与えられるタイムアウトです。例えば、ポッドが未処理のリクエストを完了したり、トランザクションをロールバックしたり、外部ストレージに状態を保存したりする必要がある場合です。負の値の場合、ポッドで指定されたデフォルト値が使用されます。

タイムアウト

排出処理があきらめる前に待機し続ける時間です。

Kubernetesの既知の問題:

Kubernetes 1.12以前は、ノードをドレインする際に タイムアウト設定が適用されませんでした。

ドレイン済みおよび遮断状態

ユーザー入力に関連するエラーがある場合、ドレインが失敗したため、ノードは`cordoned`状態に入ります。入力を修正してノードを再度ドレインするか、ノードの遮断を解除して中止することができます。

ドレインがエラーなく続く場合、ノードは`draining`状態に入ります。この状態のときにドレインを停止するオプションがあり、これによりドレイン処理が停止し、ノードの状態が`cordoned`に変更されます。

ドレインが正常に完了すると、ノードは`drained`の状態になります。その後、ノードの電源を切るか、削除することができます。

*コルドンとドレインについてもっと知りたいですか?*https://kubernetes.io/docs/tasks/administer-cluster/safely-drain-node/[Kubernetesのドキュメント]を参照してください。

Rancherによって無視されるノードにラベルを付ける

F5のBIG-IP統合などの特定のソリューションでは、クラスターに登録されないノードを作成する必要がある場合があります。

ノードが登録を完了しないため、Rancher UIでは常に不健康として表示されます。

その場合、Rancherによって無視されるノードにラベルを付けることを検討するかもしれません。これにより、Rancherは実際に問題のあるノードのみを不健康として表示します。

Rancher UIの設定を使用するか、`kubectl`を使用して無視されるノードにラベルを付けることができます。

無視されるようにラベル付けされたノードが更新状態に固まる可能性がある オープンな問題があります。

kubectlを使用して無視されるノードにラベルを付ける

Rancherによって無視されるノードを追加するには、`kubectl`を使用して次のラベルを持つノードを作成します:

cattle.rancher.io/node-status: ignore

結果:ノードをクラスターに追加すると、Rancherはこのノードとのsyncをスキップします。ノードはクラスターの一部であり続け、`kubectl`でリストされることができます。

ノードがクラスターに追加される前にラベルが追加されると、そのノードはRancher UIに表示されません。

ノードがRancherクラスターに追加された後にラベルが追加されると、そのノードはUIから削除されません。

Rancher UIまたはAPIを使用してRancherサーバーからノードを削除すると、`nodeName`がRancher APIのRancher設定の`v3/settings/ignore-node-name`にリストされている場合、ノードはクラスターから削除されません。