本記事では、obshell-sdk-pythonを使用してクラスタ内の特定ノードを削除する方法について説明します。
説明
まず、obshell-sdk-python クイックスタートを参照し、obshell-sdk-pythonの使用方法を確認することをお勧めします。
注意事項
クラスタのスケールインを実行する前に、以下の要件に注意してください:
リクエスト元のクライアントが対応するノードは、スケールイン対象のクラスタ内に存在し、かつ削除対象のノードであってはなりません。つまり、ノード自身がクラスタから自分自身を削除することはできません。
obshellが正常に動作している必要があります。
サンプルコード
タスクの同時実行
タスクの非同期実行
from obshell import ClientSet
from obshell.auth import PasswordAuth
# クライアントインスタンスを作成します。ノードのアドレスは '10.10.10.1'、ポートは2886です。
# 所在クラスタのroot@sysパスワードは '****' です。
client = ClientSet("10.10.10.1", 2886, PasswordAuth("****"))
# ノード '10.10.10.3:2886' をクラスタから削除します。
client.v1.scale_in_sync("10.10.10.3", 2886)
from obshell import ClientSet
from obshell.auth import PasswordAuth
# クライアントインスタンスを作成します。ノードのアドレスは '10.10.10.1'、ポートは2886です。
# 所在クラスタのroot@sysパスワードは '****' です。
client = ClientSet("10.10.10.1", 2886, PasswordAuth("****"))
# ノード '10.10.10.3:2886' をクラスタから削除します。
dag = client.v1.scale_in("10.10.10.3", 2886)
# タスクの完了を待機します。
if dag is not None:
client.v1.wait_dag_succeed(dag-generic_id)
関連ドキュメント
クラスタのスケールインに関するAPIインターフェースの説明は、クラスタのスケールインを参照してください。
obshell-sdk-goでAPIメソッドを呼び出す方法の紹介については、クラスタのスケールインを参照してください。