本記事では、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("****"))
# zone3をクラスタから削除します。
client.v1.delete_zone_sync("zone3")
from obshell import ClientSet
from obshell.auth import PasswordAuth
# クライアントインスタンスを作成します。ノードアドレスは'10.10.10.1'、ポートは2886です。
# クラスタのroot@sysパスワードは'****'です。
client = ClientSet("10.10.10.1", 2886, PasswordAuth("****"))
# zone3をクラスタから削除します。
dag = client.v1.delete_zone("zone3")
# タスク完了を待機します。
if dag is not None:
client.v1.wait_dag_succeed(dag-generic_id)