Ray は、AI および Python アプリケーションをスケーリングするためのオープンソースの統合フレームワークです。Ray は、機械学習セクターで広く採用されています。このトピックでは、ACK クラスターに Ray Cluster をデプロイする方法について説明します。
1. クラスターの作成
詳細については、「ACK マネージドクラスターの作成」をご参照ください。クラスターのスペックアップの詳細については、「手動でのクラスターのスペックアップ」をご参照ください。次の要件を満たす ACK managed cluster Pro を作成します。
クラスターの Kubernetes バージョンは v1.24 以降です。
ノード仕様: 少なくとも 8 vCPU と 32 GB のメモリを提供するノードが作成されます。
テスト環境では、推奨される最小仕様を使用できます。本番環境では、仕様は実際の要件によって異なります。GPU ノードを使用する必要がある場合は、GPU ノードを設定します。
ECS でサポートされているインスタンスタイプの詳細については、「インスタンスファミリー」をご参照ください。
kubectl を使用して Kubernetes クラスターに接続し、お使いのコンピューターに kubectl をインストール済みであること。詳細については、「クラスターの KubeConfig ファイルを取得し、kubectl を使用してクラスターに接続する」をご参照ください。
2. Kuberay-Operator コンポーネントのインストール
Container Service for Kubernetes (ACK) コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。クラスターの名前をクリックします。クラスター詳細ページで、次の図に示すように、[操作] > [アドオン] > [アプリケーション管理] > [Kuberay-Operator のインストール] の順にクリックして、クラスターに Kuberay-Operator コンポーネントをインストールします。

3. Ray Cluster のデプロイ
Docker Hub のプル失敗の解決策。
キャリアネットワークなどの不安定な要因により、イメージアクセラレータが特定のバージョンのコンテナイメージのプルに失敗することがあります。本番環境では、Docker Hub に依存するコンテナイメージを注意して使用することをお勧めします。この例で使用されている Ray の公式イメージは rayproject/ray:2.36.1 です。このイメージをプルできない場合は、次の操作を実行して、サブスクライブしたイメージアドレスに置き換えることができます。
Container Registry を使用して中国本土外のイメージをサブスクライブします。詳細については、「中国本土外のイメージをサブスクライブする」をご参照ください。
Global Accelerator (GA) インスタンスを作成し、そのグローバルネットワークアクセラレーションサービスを使用して、中国本土外のイメージを直接プルします。詳細については、「GA を使用して ACK でのクロスドメインコンテナイメージのプルを高速化する」をご参照ください。
次のコマンドを実行して、myfirst-ray-cluster という名前の Ray Cluster を作成し、デプロイメントステータスを確認します。
次のコマンドを実行して、Ray Cluster リソースを作成します。
次のコマンドを実行して、デプロイメントステータスを確認します
Ray Cluster のデプロイメントステータスを確認します。
kubectl get raycluster実行結果は次のようになります。
NAME DESIRED WORKERS AVAILABLE WORKERS CPUS MEMORY GPUS STATUS AGE myfirst-ray-cluster 1 1 5 5G 0 ready 4m19sRay Cluster の Pod を確認します。
kubectl get pod実行結果は次のようになります。
NAME READY STATUS RESTARTS AGE myfirst-ray-cluster-head-5q2hk 1/1 Running 0 4m37s myfirst-ray-cluster-work1-worker-zkjgq 1/1 Running 0 4m31sRay Cluster のサービスを確認します。
kubectl get svc実行結果は次のようになります。
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 192.168.0.1 <none> 443/TCP 21d myfirst-ray-cluster-head-svc ClusterIP None <none> 10001/TCP,8265/TCP,8080/TCP,6379/TCP,8000/TCP 6m57s