すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:Rayクラスターでジョブを送信する

最終更新日:Jan 07, 2025

Rayは、AIおよびPythonアプリケーションのスケーリングを目的としており、機械学習の分野で広く使用されています。 Container Service for Kubernetes (ACK) クラスターでRayクラスターを作成し、Rayクラスターでジョブを送信して分散タスクを実行できます。 レイクラスタは、モデルトレーニング、データ処理、モデル評価などのシナリオに適しています。 ローカルRayクラスターでRayジョブを送信します。

前提条件

RayクラスターはACKに基づいて作成されます

Rayクラスターは、ジョブを実行するためのさまざまな方法を提供します。 詳細については、「ray-clientの使用方法」と「ray job cliのクイックスタート」をご参照ください。

  1. 次のコマンドを実行して、Rayクラスターのポッド情報を照会します。

    kubectl get pod -n ${RAY_CLUSTER_NS}

    期待される出力:

    の名前準備ができているステータスの履歴書
    myfirst-ray-cluster-head-v7pbw 2/2ランニング0 39m 
  2. 次のコマンドを実行して、ローカルターミナルからポッド内のBashシェルに接続します。

    値を実際のポッド名に置き換えます。

    kubectl exec -it -n ${RAY_CLUSTER_NS} myfirst-ray-cluster-head-v7pbw -- bash
  3. headポッドで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()))
    
  4. 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
    
    ... 

次に何をすべきか