ノードのOS入れ替え方法について | IDCFクラウド コンテナ ご利用ガイド

ノードのOS入れ替え方法について

本ドキュメントでは稼働中ノードのOS入れ替え方法について説明します。

はじめに

すでに稼働しているノードのOS変更を行うことはできません。 そのため、ノードの入れ替えによる対応が必要となります。

OSはクラスタ作成・編集時のノードテンプレートから選択する事が可能です。 詳しくはノードのOS入れ替え手順にて説明します。

基本的な入れ替え手順の方針は以下のとおりです。

  1. スナップショットを取得する。

  2. 新しいOSのノードテンプレートを指定したノードプールを新たに追加し、入れ替え対象の古いノードプールと同じ数のノードを追加する。

  3. 追加したノードプールのノードが完全に追加完了したことを確認する。

  4. 古いノードテンプレートを利用しているノードプールのノードを減らしていく。

  5. 上記手順を全ノードが新しいOSのノードテンプレートになるまで繰り返す。

ノードのOS入れ替え手順


etcdに関する注意事項

  • etcdが動作するノードを減らす場合は、一度にノードプールを削除せずに必ず1台ずつ減らし、都度バックアップを取得してください。
  • etcdノードが1台構成の場合、ノードの入れ替えによるOS変更はサポートされません。新しいクラスターを指定のテンプレートで作成し、ワークロードを乗せ換えてください。
    • 本手順はetcdが3台、5台構成の場合を想定しています。
    • 入れ替え後に、3台構成のまま運用することは可能ですが、1台構成に戻すことは出来ません。

Workerを含むノードの入れ替え時の注意事項

  • Workerノード入れ替え時に古いテンプレートのノードを削除することで、起動していたワークロードは新しいノードプールから起動された新しいノードテンプレートのノードで自動的に開始されます。この場合、ノード削除とともにワークロードが停止してしまいますのでご注意ください。
  • 【Workerノードのみ必要に応じて実施】の手順を実行することで、ワークロードを新しいノードへ移してから削除することも可能です。

① コンテナコンソールにアクセスします。

etcd のスナップショットについて を参考に、スナップショットを取得する。

③ 左上のメニューからクラスター管理をクリックします。

④ OS入れ替え対象クラスタのメニューを選択(または右クリック)し、設定を編集をクリックします。

ノードプールを追加をクリックします。

⑥ 追加されたノードプールに以下の設定を入力し、保存します。

  • ノード名プリフィックス:任意
  • 個:入れ替え対象の古いノードテンプレートのノードプールと同じ台数
  • テンプレート:イメージが最新バージョンのテンプレート
  • コンポーネント:入れ替え対象の古いノードテンプレートのノードプールと同じコンポーネント

テンプレートについて

  • ノードのOSはテンプレートのイメージのバージョンによって異なります。
  • イメージバージョン番号が一番大きいものを選択してください。
    • テンプレートの例:IDCF Cloud/jp-east-3/ampere/ampere-network1-default/highcpu.L8 v3

etcdを含むノードの場合

  • etcdを含むノードの場合、「etcdに関する注意事項」をご確認ください。
  • etcdに「× 1,3 または 5」、メッセージに「etcd ノードを {etcdの台数} 台設定しても、奇数台になるまでクォーラムが増えないので、ハードウェアが無駄になります。」と表示されますが、一時的ですので問題ありません。

⑦ クラスタ管理から対象クラスタのステータスがUpdating → Active、ノードのステータスがRegistering → Activeとなり、ノードが完全に追加されたことを確認します。

※ノードプール毎に纏まって表示されない場合は、一度ブラウザーをリロードしてください。

⑧ 【Workerノードのみ必要に応じて実施】以下の手順に従って、入れ替え前の古いOSのノード上で稼働中のPodを新しいノードテンプレートで作成したノードに移動させます。

移動元ノードでDrainを実行します。その際、他のOS入れ替え前のノードをCordonしておくことで新しいOSのノードのみにPodが移動するようにします。

※この例ではノード「c-kswgt-np-vqskv-worker-1」からノード「c-kswgt-np-dl7kv-worker-new-os-1」へのPodの移動方法になります。

  1. クラスタ管理から対象クラスタのExploreをクリックします。
  2. クラスターNodeをクリックします。
  3. Pod移動元のノード以外のPodを移動させたくないノードを選択し、Cordonを実行します。
  4. ノードのステータスがActive → Cordonedになったことを確認します (テイントが付与されます)。
  5. Pod移動元のノードを選択し、Drainからお客様の環境に合わせて実行します。
  6. ノードのステータスがActive → Draining → Drainedになり、Podが移動したことを確認します (テイントも同時に付与されます)。
  7. 上記の作業をOS入れ替え前のノード上にPodがなくなるまで繰り返します。

⑨ クラスタ管理から、対象クラスタの設定を編集をクリックします。

⑩ 古いOSのノードテンプレートのノードを削除していきます。

etcdを含むノードの場合

  • etcdを含む場合は、etcdを含むノードの入れ替え時の注意事項を確認し、一度に削除せず必ず1台ずつ減らしてください。
    • 複数のetcdノードを一度に減らすとetcdが壊れてしまう可能性があります。
    • etcdノードを1台まで減らすことはできません。2台から1台への変更はetcdが壊れてしまいますので絶対に実行しないでください

etcdを含まないノードの場合 (Worker / Control Plane)

  • etcdを含まないノードの場合、古いノードテンプレートを利用しているノードプールを削除して保存することで、そのノードプールに属するノードも削除されます。
  • etcdを含むノードのように1台ずつ削除する作業は必要ありません (手順ではetcdノードの場合を記載しています)。
  1. ノードプールの台数を減らし、保存します。
  2. クラスター構成変更が実行され、クラスターの状態がUpdating → Activeになったことを確認します。
  3. この操作をノードプールの台数が1台になるまで繰り返します。
  4. ノードプールを削除し、保存します。(最後の古いノードも一緒に削除されます。)

⑪ クラスタ管理から、対象のクラスタで変更前のテンプレートを利用しているノードプールの削除が完了し、新しいテンプレートのノードプールに入れ替わったことを確認します。

以上でノードのOS入れ替え手順は終了です。