Rayは、AIおよびPythonアプリケーションのスケーリングを目的としており、機械学習の分野で広く使用されています。 Container Service for Kubernetes (ACK) クラスターでRayクラスターを作成し、Rayクラスターでジョブを送信して分散タスクを実行できます。 レイクラスタは、モデルトレーニング、データ処理、モデル評価などのシナリオに適しています。 ローカルRayクラスターでRayジョブを送信します。
前提条件
Rayクラスターは、ジョブを実行するためのさまざまな方法を提供します。 詳細については、「ray-clientの使用方法」と「ray job cliのクイックスタート」をご参照ください。
次のコマンドを実行して、Rayクラスターのポッド情報を照会します。
kubectl get pod -n ${RAY_CLUSTER_NS}期待される出力:
の名前準備ができているステータスの履歴書 myfirst-ray-cluster-head-v7pbw 2/2ランニング0 39m次のコマンドを実行して、ローカルターミナルからポッド内のBashシェルに接続します。
値を実際のポッド名に置き換えます。
kubectl exec -it -n ${RAY_CLUSTER_NS} myfirst-ray-cluster-head-v7pbw -- bashheadポッドで
echoまたはcatコマンドを実行し、my_script.pyファイルを保存します。import ray osのインポート # ローカルまたはリモートのRayクラスターへの接続 ray.init() @ ray.remote(num_cpus=1) クラスのカウンター: def __init__(self): self.name = "test_counter" self.counter = 0 defインクリメント (自己): self.counter += 1 def get_counter(self): return "{} got {}".forma t(self.name, self.counter) counter = Counter.remote() _in range(10000) の場合: counter.increment.remote() print(ray.get(counter.get_counter.remote()))my_script.pyスクリプトを実行して、分散タスクを実行します。python my_script.py # 期待される出力: 2024-01-24 04:25:27,286 INFO worker.py:1329-環境変数RAY_ADDRESSに設定したアドレス127.0.0.1:6379を使用する 2024-01-24 04:25:27、286 INFO worker.py:1458-アドレスで既存のRayクラスターに接続する: 172.16.0.236:6379... 2024-01-24 04:25:27、295 INFO worker.py:1633 -- Rayクラスターに接続されています。 ダッシュボードを表示するhttp:// 172.16.0.236:8265 test_counter得られた0 test_counter得られた1 test_counter got 2 test_counter got 3 ...
次に何をすべきか
ローカルネットワークからRayダッシュボードにアクセスする方法の詳細については、「ローカルネットワークからのRayダッシュボードへのアクセス」をご参照ください。
Rayオートスケーラーを使用してElastic Compute Service (ECS) ノードまたは仮想Elastic Container Instanceノードを自動的にスケーリングする方法の詳細については、「RayオートスケーラーとACKオートスケーラーに基づくElastic scaling」および「Rayオートスケーラーに基づくElastic Container InstanceノードのElastic scaling」をご参照ください。