本記事では、obshell-sdk-pythonを使用して初期化されていないクラスタにノードを追加する方法について説明します。
説明
まずは obshell-sdk-pythonクイックスタート を参照し、obshell-sdk-pythonの使用方法を確認することを推奨します。
注意事項
初期化されていないクラスタにノードを追加する前に、以下の要件に注意する必要があります:
リクエストのクライアントに対応するノードは、初期化されるクラスタ内に存在する必要があります(自己追加は除く)。
追加されるノードは、これまで一度もどのクラスタにも参加したことがないこと。
自己ノードを追加する場合、そのノードがこれまで一度もどのクラスタにも参加したことがなく、かつobshellが正常に実行されていることを確認する必要があります。
サンプルコード
以下のコードは、10.10.10.1 マシンに自己ノードを追加してマスターとし、さらに他のノード(10.10.10.2)を追加してフォロワーとするために使用されます。
タスクの同期実行
タスクの非同期実行
from obshell import ClientSet
# クライアントインスタンスを作成します。ノードアドレスは'10.10.10.1'、ポートは2886です。
client = ClientSet("10.10.10.1", 2886)
# 自分自身にjoinします。
client.v1.join_sync("10.10.10.1", 2886, "zone1")
# '10.10.10.1'が存在するクラスタに、ノード'10.10.10.2:2886'を追加します。
client.v1.join_sync("10.10.10.2", 2886, "zone1", agent_password="****")
from obshell import ClientSet
# clientインスタンスを作成します。ノードアドレスは'10.10.10.1'、ポートは2886です。
client = ClientSet("10.10.10.1", 2886)
# 自分自身にjoinします。
dag = client.v1.join("10.10.10.1", 2886, "zone1")
# タスク完了を待機します。
client.v1.wait_dag_succeed(dag-generic_id)
# '10.10.10.1'が存在するクラスタにノード'10.10.10.2:2886'を追加します。
dag = client.v1.join("10.10.10.2", 2886, "zone1", agent_password="****")
# タスク完了を待機します。
client.v1.wait_dag_succeed(dag_generic_id)
関連ドキュメント
クラスタ初期化前にノードを追加するAPIインターフェースの説明については、クラスタ初期化前にノードを追加するを参照してください。
obshell-sdk-goを使用したAPIメソッドのリクエストについては、クラスタ初期化前にノードを追加するを参照してください。