5.3. ノードホストのタスク
5.3.1. ノードホストの使用の終了 リンクのコピーリンクがクリップボードにコピーされました!
この使用を終了する手順は、インフラストラクチャーノードの場合でもアプリケーションノードの場合でも同じです。
前提条件
既存の Pod を削除されるノードセットから移行するために必要な容量が十分にあることを確認します。インフラストラクチャーノードの削除は、2 つ以上のノードがインフラストラクチャーノードの削除後もオンライン状態である場合にのみ推奨されます。
手順
利用可能なすべてのノードを一覧表示し、使用を終了するノードを検索します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 一例として、このトピックでは
ocp-infra-node-b7pl
インフラストラクチャーノードの使用を終了します。ノードとその実行中のサービスを記述します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上記の出力ではノードが
router-1-vzlzq
とdocker-registry-1-5szjs
の 2 つの Pod を実行中であることを示しています。2 つ以上のインフラストラクチャーノードがこれらの 2 つの Pod を移行するために利用可能です。注記上記のクラスターは可用性の高いクラスターであり、
router
とdocker-registry
の両方のサービスがすべてのインフラストラクチャーノードで実行されています。ノードにスケジュール対象外のマークを付けるか、その Pod をすべて退避します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pod に割り当て済みのローカルストレージ (
EmptyDir
など) がある場合、--delete-local-data
オプションを指定する必要があります。通常は、実稼働で実行される Pod はローカルストレージを一時的な、またはキャッシュファイルのみに使用し、重要で永続的なファイルには使用しません。通常のストレージの場合、アプリケーションはオブジェクトストレージまたは永続ボリュームを使用します。この場合、コンテナーイメージを保存するためにオブジェクトストレージが使用されるため、docker-registry
Pod のローカルストレージは空になります。注記上記の操作はノードで実行されている既存の Pod を削除します。次に、新規 Pod がレプリケーションコントローラーに応じて作成されます。
通常、すべてのアプリケーションは、レプリケーションコントローラーを使用して Pod を作成するデプロイメント設定でデプロイされる必要があります。
oc adm drain
はベア Pod (Pod をミラーリングしない、またはReplicationController
、ReplicaSet
、DaemonSet
、StatefulSet
、またはジョブで管理されない Pod) を削除しません。この実行には--force
オプションが必要です。ベア Pod は他のノードでは再作成されず、この操作中にデータが失われる可能性があることに注意してください。以下の例は、レジストリーのレプリケーションコントローラーの出力を示しています。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力の下部にあるイベントは新規 Pod 作成についての情報を表示しています。すべての Pod の一覧表示では、以下のようになります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
非推奨のノードで実行されていた
docker-registry-1-5szjs
およびrouter-1-vzlzq
Pod は、利用できなくなります。代わりに 2 つの新規 Poddocker-registry-1-dprp5
およびrouter-1-2gshr
が作成されています。上記のように、新規のルーター Pod はrouter-1-2gshr
ですがPending
状態になります。これは、すべてのノードが単一ルーターでのみ実行でき、ホストのポート 80 および 443 にバインドされるためです。 新たに作成されたレジストリー Pod で確認できますが、以下の例では Pod が使用が終了したノードとは異なる
ocp-infra-node-rghb
ノードで作成されていることを示しています。Copy to Clipboard Copied! Toggle word wrap Toggle overflow インフラストラクチャーノードとアプリケーションノードの使用を終了する場合の唯一の相違点として、インフラストラクチャーノードの場合、該当するインフラストラクチャーノードの退避後に、そのノードを置き換える計画がない場合はインフラストラクチャーノードで実行されるサービスを縮小できる点があります。
oc scale dc/router --replicas 2 oc scale dc/docker-registry --replicas 2
$ oc scale dc/router --replicas 2 deploymentconfig "router" scaled $ oc scale dc/docker-registry --replicas 2 deploymentconfig "docker-registry" scaled
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここで、すべてのインフラストラクチャーノードはそれぞれの Pod を 1 種類のみ実行しています。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記完全に高可用のクラスターを提供するには、3 つ以上のインフラストラクチャーノードが常に利用可能である必要があります。
ノードのスケジューリングが無効にされていることを確認するには、以下を実行します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow また、ノードに Pod が含まれていないことを確認するには、以下を実行します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow インフラストラクチャーインスタンスを
/etc/haproxy/haproxy.cfg
設定ファイルのbackend
セクションから削除します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次に、
haproxy
サービスを再起動します。sudo systemctl restart haproxy
$ sudo systemctl restart haproxy
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドで、すべての Pod をエビクトした後にクラスターからノードを削除します。
oc delete node ocp-infra-node-b7pl
$ oc delete node ocp-infra-node-b7pl node "ocp-infra-node-b7pl" deleted
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Pod またはノードの退避またはドレイン (解放) についての詳細は、ノードの保守 のセクションを参照してください。
5.3.1.1. ノードホストの置き換え リンクのコピーリンクがクリップボードにコピーされました!
使用終了となったノードの代わりに、ノードを追加する必要がある場合には、ホストの既存クラスターへの追加 のセクションを参照してください。