人工知能 (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-exampleRuby で新規サンプルを構築できます。または、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_PORTClearML 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 exposedWeb サーバーアドレスにアクセスするには、先ほど公開したルートを表示します。お使いのインターネット・ブラウザーに 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 NoneClearML ダッシュボードの表示
Web サーバーにアクセスできるようになったら、以下の認証情報でログインします。
- ユーザー名: testuser
- パスワード: testpassword
このユーザー名とパスワードの組み合わせは、apiServer の override.yaml で設定されており、ユーザーアクセスをカスタマイズできます。
ログインすると、ClearML ダッシュボードを確認できます。
まとめ
これで終了です。Red Hat OpenShift クラスターに ClearML をデプロイする方法を理解しました。ClearMLのコンテンツ例の サンプル を使用して各種機能をお試しできます。
無料のトライアルを使用して、OpenShift Developer Sandbox をお試しいただけます。OpenShift、Red Hat の AI イニシアチブ、ClearML に関する詳細は、以下のページを参照してください。
執筆者紹介
チャンネル別に見る
自動化
テクノロジー、チームおよび環境に関する IT 自動化の最新情報
AI (人工知能)
お客様が AI ワークロードをどこでも自由に実行することを可能にするプラットフォームについてのアップデート
オープン・ハイブリッドクラウド
ハイブリッドクラウドで柔軟に未来を築く方法をご確認ください。
セキュリティ
環境やテクノロジー全体に及ぶリスクを軽減する方法に関する最新情報
エッジコンピューティング
エッジでの運用を単純化するプラットフォームのアップデート
インフラストラクチャ
世界有数のエンタープライズ向け Linux プラットフォームの最新情報
アプリケーション
アプリケーションの最も困難な課題に対する Red Hat ソリューションの詳細
仮想化
オンプレミスまたは複数クラウドでのワークロードに対応するエンタープライズ仮想化の将来についてご覧ください