VM/ベアメタルの Runtime Fabric からのノード追加または削除

VM/ベアメタルの Runtime Fabric を使用する場合、Runtime Fabric からノードを追加および削除できます。ノードの追加または削除が必要になる場合があるシナリオを以下に示します。

  • ノードを追加して Runtime Fabric をスケールアップする。

  • ノードを削除または追加して、Runtime Fabric の健全性と安定性を確保する。

  • ノードを削除し、OS パッチを実行した後、ノードを Runtime Fabric に再度追加する。

オペレーションセンター UI からのノードの追加はサポートされていません。Runtime Fabric 似新しいノードを追加するには、次の手順を使用してください。

Runtime Fabric へのノードの追加

ノードを追加する前に、新しいノードのインフラストラクチャをプロビジョニングします。クラスターに参加できるようにするには、新しいノードが Runtime Fabric インストールと同じネットワーク上に存在する必要があります。

始める前に

新しいノードを追加する前に、次を確認してください。

新しいノードを追加する手順は、次のとおりです。

  1. 新しいノードの仮想マシンで ​/opt/anypoint/runtimefabric​ ディレクトリを作成します。

    mkdir -p /opt/anypoint/runtimefabric
  2. init.sh​ インストールスクリプトを新しいノードの ​/opt/anypoint/runtimefabric​ ディレクトリの下にコピーします。

    このスクリプトは、Runtime Fabric のインストール時にダウンロードしたファイルに含まれます。

  3. 環境ファイルを既存のノードの ​/opt/anypoint/runtimefabric​ ディレクトリから新しいノードの同じディレクトリにコピーします。

    環境ファイルを正しいノード種別 (コントローラーまたはワーカー) からコピーしたことを確認します。

  4. 正しいノード種別で必要とされるパラメーターのみを含めるように、コピーした環境ファイルを変更します。

    • ワーカーノードパラメーター

      次の例は、ワーカーノードで必要とされる環境パラメーターを示しています。コピーしたファイルの ​RTF_DOCKER_DEVICE_SIZE​、​RTF_TOKEN​、および ​RTF_INSTALLER_IP​ の値を使用します。​RTF_DOCKER_DEVICE​ では、​device_name​ を適切な値に置き換えます。

      • RTF_NODE_ROLE=worker_node

      • RTF_INSTALL_ROLE=joiner

      • RTF_DOCKER_DEVICE=/dev/device_name

      • RTF_TOKEN="R6J4UR6J4UR6J4UO"

      • RTF_INSTALLER_IP="10.0.42.86"

      • RTF_ACTIVATION_DATA​ が存在する場合は削除する。

    • コントローラーノードパラメーター

      次の例は、コントローラーノードで必要とされる環境パラメーターを示しています。コピーしたファイルの ​RTF_DOCKER_DEVICE_SIZE​、​RTF_TOKEN​、および ​RTF_ETCD_DEVICE​ の値を使用します。​RTF_DOCKER_DEVICE​ では、​device_name​ を適切な値に置き換えます。​RTF_INSTALLER_IP​ では、リードコントローラーノードの IP アドレスを指定します。

      • RTF_NODE_ROLE=controller_node

      • RTF_INSTALL_ROLE=joiner

      • RTF_DOCKER_DEVICE=/dev/device_name

      • RTF_TOKEN="R6J4UR6J4UR6J4UO"

      • RTF_ETCD_DEVICE=/dev/etcd_device

      • RTF_INSTALLER_IP="10.1.255.93"

      • RTF_ACTIVATION_DATA​ が存在する場合は削除する

    • 専用ノードパラメーター

      次の例は、ロードバランサーノードで必要とされる環境パラメーターを示しています。環境ファイルをコントローラーノードからコピーした場合、例に示されている行を除き、ファイルのすべての行を削除します。コピーしたファイルの ​RTF_DOCKER_DEVICE_SIZE​ および ​RTF_TOKEN​ の値を使用します。​RTF_DOCKER_DEVICE​ では、​device_name​ を適切な値に置き換えます。​RTF_INSTALLER_IP​ では、リードコントローラーノードの IP アドレスを指定します。

      • RTF_NODE_ROLE=dedicated_ingress_node

      • RTF_INSTALL_ROLE=joiner

      • RTF_DOCKER_DEVICE=/dev/device_name

      • RTF_DOCKER_DEVICE_SIZE=50G

      • RTF_TOKEN="R6J4UR6J4UR6J4Uy"

      • RTF_INSTALLER_IP="10.1.255.93"

  5. 新しいノードで特権ユーザーとして ​init.sh​ スクリプトを実行します。このスクリプトを実行する場合、実行可能権限の追加が必要になる場合があります。

    sudo chmod +x ./init.sh

    このスクリプトにより、新しいノードが Runtime Fabric クラスターに参加します。

  6. 新しいノードが Runtime Fabric に追加されたことを確認します。

    sudo gravity status

    専用の内部ロードバランサーノードがクラスターに追加されている場合、インバウンドトラフィックを有効にすると、専用ノードを指定するオプションが提供されます。専用ノードでは、CPU コアおよびメモリの量を指定できません。

Runtime Fabric からのノードの削除

Runtime Fabric クラスターから​コントローラー​ノードを削除するには、次のコマンドを実行します。

sudo kubectl drain <node-name>
sudo gravity leave

Runtime Fabric クラスターから​ワーカー​ノードを削除するには、次のコマンドを実行します。

sudo gravity leave

このコマンドは、ノードで実行されているすべての Runtime Fabric サービスをシャットダウンします。また、すべてのソフトウェアとデータが削除されます。

成功した場合、このコマンドは、開始された削除操作の ID を出力します。次のコマンドを使用して、このコマンドの進行状況を監視できます。

gravity status

sudo gravity leave​ を使用してノードを削除できない場合、​--force​ オプションを使用してコマンドを再度実行することが必要になる場合があります。次のコマンドを実行して、ノードをリモートで削除することもできます。

sudo kubectl drain <node-name>
sudo gravity remove <node-name>

<node>​ は、削除するノードを示します。これには、ノードに割り当てられたホスト名またはその IP アドレスのいずれかを指定できます。