1.2. パイプラインの定義
Kubeflow Pipelines SDK を使用すると、エンドツーエンドの機械学習とデータパイプラインを定義できます。最新の Kubeflow Pipelines 2.0 SDK を使用して、Python コードでデータサイエンスパイプラインを構築します。パイプラインを構築したら、SDK を使用してパイプラインを中間表現 (IR) YAML ファイルにコンパイルします。パイプラインを定義した後、YAML ファイルを OpenShift AI ダッシュボードにインポートして、その実行設定を設定できるようにします。
FIPS モードで実行されているクラスターで OpenShift AI を使用している場合、データサイエンスパイプラインのカスタムコンテナーイメージは UBI 9 または RHEL 9 に基づいている必要があります。これにより、FIPS 承認のパイプラインコンポーネントとの互換性が確保され、OpenSSL または GNU C ライブラリー (glibc) のバージョンの不一致に関連するエラーが防止されます。
Elyra JupyterLab 拡張機能を使用して、JupyterLab 内でデータサイエンスパイプラインを作成して実行することもできます。JupyterLab でのパイプラインの作成に関する詳細は、JupyterLab でのパイプラインの使用 を参照してください。Elyra JupyterLab 拡張機能の詳細は、Elyra ドキュメンテーション を参照してください。
1.2.1. Kubernetes API を使用したパイプラインの定義 リンクのコピーリンクがクリップボードにコピーされました!
Kubernetes API を使用してデータサイエンスパイプラインとパイプラインバージョンを定義できます。この方法では、パイプラインとパイプラインバージョンが、内部データベースではなくクラスター内のカスタムリソースとして保存されます。この方法により、OpenShift GitOps (Argo CD) または同様のツールを使用して、パイプラインとパイプラインバージョンを簡単に管理できるようになります。同時に、引き続き OpenShift AI ユーザーインターフェイス (UI)、API、および Kubeflow Pipelines (kfp) ソフトウェア開発キット (SDK) を使用してそれらを管理することもできます。
前提条件
-
以前に、パイプラインサーバー (
DataSciencePipelinesApplicationカスタムリソース) を含む利用可能なデータサイエンスプロジェクトを作成した。 - OpenShift コマンドラインインターフェイス (CLI) がインストールされている。
手順
ターミナルウィンドウで次のコマンドを実行して、OpenShift CLI にログインします。
oc login -u <user_name>
$ oc login -u <user_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow プロンプトが表示されたら、OpenShift サーバーの URL、接続タイプ、およびパスワードを入力します。
デフォルトの
databaseオプションの代わりに Kubernetes API ストレージを使用するようにパイプラインサーバーを設定するために、プロジェクトのDataSciencePipelinesApplication(DSPA) カスタムリソースで、spec.apiServer.pipelineStoreフィールドをkubernetesに設定します。次のコマンドの <dspa_name> を DSPA カスタムリソースの名前に置き換え、<namespace> をプロジェクトの名前に置き換えます。
oc patch dspa <dspa_name> -n <namespace> \ --type=merge \ -p {"spec": {"apiServer": {"pipelineStore": "kubernetes"}}}$ oc patch dspa <dspa_name> -n <namespace> \ --type=merge \ -p {"spec": {"apiServer": {"pipelineStore": "kubernetes"}}}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 警告Kubernetes API ストレージに変更すると、内部データベースに保存されている既存のパイプラインに OpenShift AI UI または REST API 経由でアクセスできなくなります。これらのパイプラインへのアクセスを復元するには、
spec.apiServer.pipelineStoreフィールドをdatabaseに戻してください。次の内容を含む YAML ファイルで
Pipelineカスタムリソースを定義します。パイプライン定義の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow パイプライン定義を適用して、クラスター内に
Pipelineカスタムリソースを作成します。次のコマンドの <pipeline_yaml_file> を YAML ファイルの名前に置き換えます。
コマンドの例
oc apply -f <pipeline_yaml_file>.yaml
$ oc apply -f <pipeline_yaml_file>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次の内容を含む YAML ファイルで
PipelineVersionカスタムリソースを定義します。パイプラインバージョン定義の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow パイプラインバージョン定義を適用して、クラスターに
PipelineVersionカスタムリソースを作成します。次のコマンドの <pipeline_version_yaml_file> を YAML ファイルの名前に置き換えます。
コマンドの例
oc apply -f <pipeline_version_yaml_file>.yaml
$ oc apply -f <pipeline_version_yaml_file>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow パイプラインバージョンを作成すると、フィルタリングを容易にするために、システムによって次のラベルがパイプラインバージョンに自動的に適用されます。
自動ラベルの例
pipelines.kubeflow.org/pipeline-id: <metadata.uid of the pipeline> pipelines.kubeflow.org/pipeline: <pipeline name>
pipelines.kubeflow.org/pipeline-id: <metadata.uid of the pipeline> pipelines.kubeflow.org/pipeline: <pipeline name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
Pipelineカスタムリソースが正常に作成されたことを確認します。oc get pipeline <pipeline_name> -n <namespace>
$ oc get pipeline <pipeline_name> -n <namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow PipelineVersionカスタムリソースが正常に作成されたことを確認します。oc get pipelineversion <pipeline_version_name> -n <namespace>
$ oc get pipelineversion <pipeline_version_name> -n <namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow