ブログを購読する

人工知能 (AI) およびインテリジェント・アプリケーションに対する需要は引き続き高くなっています。Red Hat は、このようなニーズに対応し、パートナーのエコシステムを拡張してさらに AI 機能を強化できるように、Red Hat OpenShift AI を提供しています。前回の記事では、ClearML オープンソース・ソリューションのインストール方法について説明しましたが、この記事では、OpenShift への ClearML Enterprise の基本的なインストール方法を説明します。

ClearML とは

ClearML は、お客様が  machine learning operations (MLOps) ランドスケープを革新化ができるようにサポートする包括的なサービススイートを提供します。エンド・ツー・エンドの MLOps 管理にフォーカスする ClearML は、シームレスなテストのトラッキング、連携的なワークフロー、効率的なフレームワークをスムーズに行えるようにします。このオープンソース・プラットフォームは、普及している機械学習 (ML) フレームワークを統合し、ユーザーがデータ管理、スケジューリング、最適化コンピューティング、モデル・モニタリングを行えるように幅広いツールセットを提供します。ClearML は、MLOps 機能を拡張し、一元化されたプラットフォームで機械学習のプロセスを最適化することを目的として掲げるチームや企業にとって極めて重要なソリューションとなっています。ClearML Enterprise は、スケーラビリティ、セキュリティ、コラボレーション・プラットフォーム、CI/CD ツールなど MLOps を向上する追加機能をお客様に提供します。

Red Hat OpenShift と ClearML Enterprise を併用する理由

ClearML Enterprise と OpenShift は多くの主要な機能を共有しており、統合プラットフォーム上でインテリジェントなアプリケーションを拡張、カスタマイズ、監視する機会を提供します。 OpenShift と ClearML Enterprise は、総合的なエンタープライズ AI 戦略の一部として使用すると、次のようなメリットを提供します。

  • スケーラビリティの拡張: 組織がより複雑な機械学習のワークロードおよびインテリジェント・アプリケーションを処理できるようにします。
  • カスタマイズおよびインテグレーションの向上: これ以外に、パートナー・エコシステムからのエンタープライズ・インフラストラクチャおよび ISV ツールとの統合を深めます。
  • セキュリティおよびコンプライアンス・フットプリントの増強: 通常、厳密に指定されている企業システムの  IT セキュリティやコンプライアンス要件に対応できるように支援します。
  • 高度な分析およびレポート: OpenShift のクラスター監視および分析機能を超え、ClearML では機械学習プロセスにより深い知見を提供します。

要件

  • OpenShift バージョン 4.14
  • OC と Helm ツールをインストールしておく
  • ClearML Enterprise の認証情報

開始前に、clearml という名前の新規ディレクトリを作成し、そのディレクトリに移動して、今回の説明用に準備します。以下のように WILDCARD の変数は、ワイルドカードの URL に置き換えます。

$ mkdir clearml
$ cd clearml
$ export WILDCARD=<YOUR_OPENSHIFT_WILDCARD_APP_URL>

例: apps.ocp4.example.com

Helm オーバーライド構成を設定した場合、このワイルドカード変数は後ほど使用します。

Helm チャートのデプロイ

OpenShift クラスターの Helm 経由で ClearML Enterprise をデプロイできます。Helm チャートをプルしてレポジトリーに追加し、ClearML チームが提供する認証情報でそのレポジトリーを更新します。

$ helm repo add allegroai-enterprise <CLEAR_ML_HELM_CHART_URL> --username <YOUR_USERNAME> --password <YOUR_PASSWORD>
"allegroai-enterprise" has been added to your repositories

リポジトリーを追加したら、以下のコマンドを使用して Helm を更新します。

$ helm repo update
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "allegroai-enterprise" chart repository
Update Complete. ⎈Happy Helming!⎈

これでリポジトリーが設定されました。OpenShift クラスターで ClearML の新規プロジェクトを作成します。

$ oc new-project clearml
Now using project "clearml" on server.

'new-app' コマンドで、このプロジェクトにアプリケーションを追加できます。たとえば、以下を実行すると、

   oc new-app rails-postgresql-example

Ruby で新規サンプルを構築できます。または、kubectl を使用して簡単な Kubernetes アプリケーションを作成します。

   kubectl create deployment hello-node --image=registry.k8s.io/e2e-test-images/agnhost:2.43 -- /agnhost serve-hostname

以下の情報を使用して override.yml という名前のファイルを作成し、OpenShift クラスターのデフォルト設定を上書きします。ClearML のプライベート Docker レジストリーにアクセスするには、イメージの認証情報が必要です。imageCredentials フィールドにそのパスワードを挿入します。

$ cat <<EOF >> /tmp/override.yaml
imageCredentials:
 password: "<CLEARML_PRIV_REGISTRY_CREDENTIALS>"
elasticsearch:
 rbac:
   create: true
   serviceAccountName: "clearml-elastic"
apiserver:
 podSecurityContext:
   runAsUser: 0
 service:
   type: ClusterIP
 additionalConfigs:
   apiserver.conf: |
     auth {
       fixed_users {
         enabled: true
         pass_hashed: false
         users: [
           {
           username: "testuser"
           password: "testpassword"
           name: "Test User"
           admin: true
          },
         ]
        }
       }
 ingress:
   # -- Enable/Disable ingress
   enabled: true
   # -- ClassName (must be defined if no default ingressClassName is available)
   ingressClassName: ""
   # -- Ingress hostname domain
   hostName: "clearml-enterprise-apiserver-clearml.$WILDCARD"
   # -- Reference to secret containing TLS certificate. If set, it enables HTTPS on ingress rule.
   tlsSecretName: ""
   # -- Ingress annotations
   annotations: {}
   # -- Ingress root path url
   path: "/"
fileserver:
 service:
   type: ClusterIP
 ingress:
   # -- Enable/Disable ingress
   enabled: true
   # -- ClassName (must be defined if no default ingressClassName is available)
   ingressClassName: ""
   # -- Ingress hostname domain
   hostName: "clearml-enterprise-fileserver-clearml.$WILDCARD"
   # -- Reference to secret containing TLS certificate. If set, it enables HTTPS on ingress rule.
   tlsSecretName: ""
   # -- Ingress annotations
   annotations: {}
   # -- Ingress root path url
   path: "/"
 # -- File Server extra envrinoment variables
webserver:
 service:
   type: ClusterIP
 ingress:
   # -- Enable/Disable ingress
   enabled: true
   # -- ClassName (must be defined if no default ingressClassName is available)
   ingressClassName: ""
   # -- Ingress hostname domain
   hostName: "clearml-enterprise-webserver-clearml.$WILDCARD"
   # -- Reference to secret containing TLS certificate. If set, it enables HTTPS on ingress rule.
   tlsSecretName: ""
   # -- Ingress annotations
   annotations: {}
   # -- Ingress root path url
   path: "/"
EOF

ユーザーによってはセキュリティ・コンテキストの制約を変更する必要がある場合があります。現在は、パーミッションの幅を広げて、ClearML Enterprise をデプロイする必要があるため、以下のユーザーに anyuid と privileged パーミッションを許可します。ClearML は、セキュリティ上の理由から root 以外のオプションもありますが、この記事の執筆時点で、Helm のバグが原因でパーミッションの制限を緩和する必要があります。以下の例を示します。

$ oc adm policy add-scc-to-user anyuid -z clearml-apiserver
$ oc adm policy add-scc-to-user anyuid -z clearml-enterprise-mongodb
$ oc adm policy add-scc-to-user anyuid -z clearml-enterprise-redis
$ oc adm policy add-scc-to-user anyuid -z default
$ oc adm policy add-scc-to-user privileged -z clearml-elastic

clusterrole.rbac.authorization.k8s.io/system:openshift:scc:anyuid added: "clearml-apiserver"
clusterrole.rbac.authorization.k8s.io/system:openshift:scc:anyuid added: "clearml-enterprise-mongodb"
clusterrole.rbac.authorization.k8s.io/system:openshift:scc:anyuid added: "clearml-enterprise-redis"
clusterrole.rbac.authorization.k8s.io/system:openshift:scc:anyuid added: "default"
clusterrole.rbac.authorization.k8s.io/system:openshift:scc:privileged added: "clearml-elastic"

最後に、override.yaml. で指定したカスタム設定で、お使いのクラスターに Helm チャートをデプロイします。Helm チャートのインストールおよびデプロイには 5 分ほどかかるはずですが、所要時間は、環境のリソースによって異なります。

$ helm install clearml-enterprise allegroai-enterprise/clearml-enterprise -f /tmp/override.yaml
NAME: clearml-enterprise
LAST DEPLOYED: Wed Nov 22 10:13:26 2023
NAMESPACE: clearml
STATUS: deployed
REVISION: 1
NOTES:
1. Get the application URL:
 export POD_NAME=$(kubectl get pods --namespace clearml -l "app.kubernetes.io/name=clearml-enterprise,app.kubernetes.io/instance=clearml-enterprise" -o jsonpath="{.items[0].metadata.name}")
 export CONTAINER_PORT=$(kubectl get pod --namespace clearml $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
 echo "Visit http://127.0.0.1:8080 to use your application"
 kubectl --namespace clearml port-forward $POD_NAME 8080:$CONTAINER_PORT

ClearML Enterprise ダッシュボードへのルートにアクセス

Helm チャートがデプロイされましたので、ClearML Enterprise に接続できます。ClearML Enterprise に接続するには、ClearML Web サーバーへのルートにアクセスします。先に、以下のコマンドを使用して、API サーバー、Web サーバー、ファイルサーバーを公開する必要があります。

$ oc expose svc clearml-enterprise-apiserver
$ oc expose svc clearml-enterprise-fileserver
$ oc expose svc clearml-enterprise-webserver

route.route.openshift.io/clearml-enterprise-apiserver exposed
route.route.openshift.io/clearml-enterprise-webserver exposed
route.route.openshift.io/clearml-enterprise-fileserver exposed

Web サーバーアドレスにアクセスするには、先ほど公開したルートを表示します。お使いのインターネット・ブラウザーに Web サーバー・アドレスにコピーして貼り付けます。

$ oc get routes
clearml-enterprise-apiserver    clearml-enterprise-apiserver-clearml.apps.ocp4.example.com         clearml-enterprise-apiserver    8008                 None
clearml-enterprise-fileserver   clearml-enterprise-fileserver-clearml.apps.ocp4.example.com         clearml-enterprise-fileserver   8081                 None
clearml-enterprise-webserver    clearml-enterprise-webserver-clearml.apps.ocp4.example.com           clearml-enterprise-webserver    8080                 None

ClearML ダッシュボードの表示

Web サーバーにアクセスできるようになったら、以下の認証情報でログインします。

  • ユーザー名: testuser
  • パスワード: testpassword

このユーザー名とパスワードの組み合わせは、apiServer の override.yaml で設定されており、ユーザーアクセスをカスタマイズできます。

Screenshot of the ClearML login screen

ログインすると、ClearML ダッシュボードを確認できます。

Screenshot of the ClearML dashboard

まとめ

これで終了です。Red Hat OpenShift  クラスターに ClearML をデプロイする方法を理解しました。ClearMLのコンテンツ例の サンプル を使用して各種機能をお試しできます。

無料のトライアルを使用して、OpenShift Developer Sandbox をお試しいただけます。OpenShift、Red Hat の AI イニシアチブ、ClearML に関する詳細は、以下のページを参照してください。


執筆者紹介

チャンネル別に見る

automation icon

自動化

テクノロジー、チームおよび環境に関する IT 自動化の最新情報

AI icon

AI (人工知能)

お客様が AI ワークロードをどこでも自由に実行することを可能にするプラットフォームについてのアップデート

open hybrid cloud icon

オープン・ハイブリッドクラウド

ハイブリッドクラウドで柔軟に未来を築く方法をご確認ください。

security icon

セキュリティ

環境やテクノロジー全体に及ぶリスクを軽減する方法に関する最新情報

edge icon

エッジコンピューティング

エッジでの運用を単純化するプラットフォームのアップデート

Infrastructure icon

インフラストラクチャ

世界有数のエンタープライズ向け Linux プラットフォームの最新情報

application development icon

アプリケーション

アプリケーションの最も困難な課題に対する Red Hat ソリューションの詳細

Original series icon

オリジナル番組

エンタープライズ向けテクノロジーのメーカーやリーダーによるストーリー