Deploy Ray using Helm
計算要件を分散し、データの合成のような重いジョブを実行する, を展開する必要があります。 Ray クラスタにHelmを使ってAPIを接続する。チャートはリポジトリ here または、Helm で直接使用するリポジトリ URL を指定することもできます。このレポURLについてはSynthoチームにお問い合わせください。
このドキュメントでは helm/ray
を前述のGitHubリポジトリのmasterブランチに追加した。
{ヒント style="info" %}。 OpenShiftユーザーのためのメモ: Rayでは、ポッド内に多くのスレッドを作成する必要があります。, 特にRayクラスタをスケーリングする場合。デフォルトでは, OpenShiftはポッドが生成できるプロセス数を制限している, コンテナランタイムインターフェース(CRI)としてCRI-Oを使用しているためです。この制限を更新することをお勧めします。: セクションを参照 #additional-changes-for-openshift-cri-o
画像の設定
において values.yaml
ファイル helm/ray
, 正しいDockerイメージを使用するために、以下のフィールドを設定します。:
画像タグはSynthoチームが提供します。場合によっては, 最新のタグが使える, しかし、特定のタグを設定することをお勧めします。
正しいDockerイメージを設定する, Kubernetesを定義する Secret
で作成される。 imagePullSecrets
:
この値は syntho-cr-secret
デフォルトで
ライセンスキー - レイ
ライセンスキーは SynthoLicense
での values.yaml
ファイルを作成する。この例は次のようになる。:
Syntho が提供するライセンスキーを使用してください。
クラスタ名
デフォルトのクラスター名は ray-cluster
.調整が必要な場合, を変更することで可能です。 clustername
:
ワーカーとノード
まず最初に, Synthoチームは、お客様のデータ要件に応じたクラスタの正確なサイズについて、いくつかの推奨事項を持っています。これに関する情報を受け取っていない場合, 最適なセットアップをご相談ください。このセクションの残りの部分では、Helmチャートでどのように見えるかを示す設定例を示します。
クラスタのサイズとノード数に応じて, レイがタスクに使えるワーカーの数を調整する。Rayは少なくとも1つのヘッドインスタンスを必要とします。パフォーマンスを上げるには, さらにワーカーグループを作ることもできます。以下 head
ヘッドノードのリソースを設定します。このヘッドノードは主にRayの管理タスクに使用され、ワーカーノードはSynthoアプリケーションのタスクのほとんどをピックアップします。
本番環境の場合, ヘッドノードの隣にワーカーのプールを作ることをお勧めします。Syntho チームは、ヘッドノードとワーカーノードに割り当てるリソースを指定できます。以下は、ヘッドノードと1つのノードプールを持つクラスタの構成例です。, 1台, 16個のCPUと64GBのRAMを搭載:
Kubernetesでオートスケールが有効になっている場合, レイの要件が利用可能なリソースを上回った場合、新しいノードが作成されます。どのような状況がお客様のデータ要件に合うか、Synthoチームとご相談ください。
開発・実験環境の場合, ほとんどの場合、それほど高度なセットアップは必要ない。この場合, 最初にヘッドノードタイプのみをセットアップし、ワーカーや追加の自動スケーリング設定は行わないことをお勧めします。このノードのサイズについては、Synthoチームが再度アドバイスします。, データ要件を考慮する。16CPUと64GBのRAMを搭載したノードを使用した構成例は以下の通りです。:
さらに, nodeSelector
, tolerations
そして affinity
ノードのタイプごとに定義できる, ポッドやノードがどこに割り当てられるかをある程度コントロールできるようにするためだ。 securityContext
そして annotiations
は、ワーカー/ヘッドノードのタイプごとに設定することもできます。
Ray ワーカーの共有ストレージ
現在実行中のタスクに関するメタデータを共有するために、Ray ワーカー用に追加の永続ボリュームが必要です。これは Helm チャートに含まれ、Persistent Volume タイプが ReadWriteMany
.セクション storage
を使用する場合は、storageClassNameを調整してください。を使用していることを確認してください。 storageClass
型をサポートする ReadWriteMany
.
ボリュームのマウント
OpenShift/CRI-O に関する追加変更
特定のオーケストレーターやセットアップでは、コンテナランタイムインターフェース (CRI) として CRI-O が使用されます。Openshift 4.x では現在、CRI-O はデフォルトで 1024 プロセスの制限を設定しています。スケーリング時, Rayを使用すると、この制限に簡単に達することができます。この制限を8096プロセス程度に設定することを推奨する;
Openshiftのドキュメントには、この制限を増やす手順が記載されています。 here.その following link には、CRI-Oで使用できる設定の詳細が記載されている。
デプロイ
で値が正しく設定されたら values.yaml
アンダー helm/ray
, 以下のコマンドを使ってアプリケーションをクラスタにデプロイできる。:
配備後, KubernetesでRayアプリケーションのサービス名を見つけることができる。サービス名を ray-cluster
上のコマンドのように, サービス名(および変数 ray_address
コアAPI値のセクション)は ray-cluster-ray-head
.
最後に, レイ・オペレーター・ポッドと、それに続くレイ・ヘッドやレイ・ワーカー・ポッドをチェックできる。実行中 kubectl logs deployment/ray-operator -n syntho
オペレータのログが表示されます。
Last updated