Docker-composeテンプレート
ここで紹介されているテンプレートはシングルホストのRapidMiner AI Hubをデプロイするのに役立ちます。マルチホストでデプロイを行う場合は、Kubernetesテンプレートをご覧ください。
私たちのdocker-composeテンプレートをデプロイするには、 ダウンロード をクリックしてテンプレートファイルをダウンロードするか、もしくはリンクを選択して詳細を確認してください。
- [ダウンロード] 開発とテストを目的としたもので、すぐに始めることができます。
- [ダウンロード] 一般的な運用を目的としたものです。
- [ダウンロード] 簡単なHadoop接続を必要とする運用環境を目的としたものです。
- [ダウンロード] 低レイテンシのスコアリング能力を必要とする運用環境を目的としたものです。
各テンプレートは二つのファイルを提供します。
- .env環境ファイル
- docker-compose.yml定義ファイル
Real-Time ScoringとHadoopとの接続機能の両方をもつ運用環境を必要とする場合など、カスタム環境を作成する必要がある場合は、これらのテンプレートを組み合わせて使用することができます。
テンプレートから提供されている サービスとロケーション も参照してください。
docker-composeを使用したデプロイメント手順
上記のテンプレートをデプロイするには、以下のステップで進めます。
1.まだDockerをインストールしていなければ、 Linux / WindowsにDockerをインストールしてください。
2.上記リストのテンプレートから一つを選び、ダウンロードをクリックしてZIPファイルを取得します。ファイルを解凍し、以下の二つのファイルを確認します。
- .env (先頭にドットが付いているため、通常このファイルは隠しファイルになっています。)
- docker-compose.yml
3.ステップ(7)で述べられているように、.envファイルのPUBLIC_URLとSSO_PUBLIC_URL変数を設定します。
4.この二つのファイルを、Dockerをインストールしたマシンに転送し、サーバーのフォルダに移動させます。
5.サーバーに接続し(ssh)、この二つのファイルが含まれているディレクトリに移動します(cd)。
6.テンプレートは外部のDockerネットワーク(jupyterhub-user-net-$JUPYTER_STACK_NAME)を参照しており、デプロイメントを開始する前に作成しておく必要があります(予定しているデプロイメントにJupyterHubが含まれているなら、デフォルトでtrueになっています)。デフォルトのスタック名はdefaultになっており、変更されていなければ、以下のコマンドでネットワークが作成されます。
docker network create jupyterhub-user-net-default
7.デプロイされたスタックは、(RapidMiner Studioやブラウザなど)外部クライアントを使用した接続や、内部での通信のために、有効なパブリックURL設定が必要です。このURLは、最初の起動前に、.envファイルのPUBLIC_URL と SSO_PUBLIC_URL環境変数を使用して、有効なHTTP URLに設定する必要があります。(※また、.envファイルのSSO_SSL_REQUIREDを”none”に設定します。)
- http://localhost やhttp://127.0.0.1はサービス間の内部のコンテナ同士の通信に使用されるため、これらのURLの使用はサポートされていません。
- シングルホストにデプロイする場合は、少なくともhttp://192.168.1.101のようなホストのパブリックURLのIPアドレス、もしくはhttp://platform.rapidminer.comのようなこのIPアドレスに繋がるパブリックなホスト名を使用することが好まれます。
- デプロイメントがデフォルトのHTTPやHTPPSポート(80や443)とリッスンできない場合、以下を行います。
- ポート番号はhttp://platform.rapidminer.com:8080のように、PUBLIC_URL と SSO_PUBLIC_URL 変数で指定します。
- 外部ポートのマッピングは、docker-compose.ymlファイル内で8080:80のように、rm-proxy-svc サービス定義で設定します。
- 外部ポートは、 PROXY_HTTP_PORT=8080 や PROXY_HTTPS_PORT=8443のように、docker-compose.ymlファイルのrm-server-svcに、PROXY_HTTP_PORT とPROXY_HTTPS_PORT 変数を使用して設定します。(最初の起動時に失敗した場合や、変更する必要がある場合、後からプロキシ設定の /rapidminer-home/configuration/standalone.xml ファイルを編集し、サービスを再起動する必要があります。)
- 接続にはHTTPSを使用することが非常に好まれます。この場合、PUBLIC_URL と SSO_PUBLIC_URL変数は先頭に https:// を用い、証明書チェーンと秘密鍵ファイルは certificate.crt と private.keyのファイル名を用いてsslサブフォルダでPEM形式で提供される必要があります。デフォルトのファイル名は .env ファイルのProxyセクションにある環境変数を用いて変更できます。
8.さらに、頻繁に使用される値を設定します。
- 最初の管理者パスワードはKEYCLOAK_PASSWORD変数を使用して設定できます。
- AUTH_SECRETの値は内部認証の暗号鍵に使用されます。デフォルトの値をBase64エンコード文字列に変更することをお勧めします。
9.SSO設定が無効の場合(これがデフォルトです)、最初の起動前にプラットフォームデプロイメントは初期化する必要があります。これには1-2分かかります。以下のコマンドを実行します。
docker-compose up -d rm-init-svc
10.最後に、以下のコマンドを実行してスタックを起動します。
docker-compose up -d
ホストでDockerイメージが利用できない場合、Docker Hubから自動的にダウンロードされます。
知っておくと良いこと
- 一般的なデプロイメント管理タスクのために、追加のdocker-composeコマンドがテクノロジー概要で述べられています。
- RapidMiner Job Agentsの数を増やす、もしくは減らすには、Dockerデプロイメントマネージャを使用するか、もしくは以下のdocker-composeコマンドを使用します。
docker-compose up --scale rm-server-job-agent-svc=5 -d
サービスとロケーション
デプロイメントが実行されると、設定されたリバースプロキシはデフォルトでは標準的なHTTP(80)ポートをリッスンし、HTTPS認証が設定されればHPPS(443)ポートでも行います。以下のロケーションはデプロイメントのパブリックURL上で利用可能です(デプロイされたサービスのリストによります)。
最初のログインの認証情報は.envファイル(KEYCLOAK_USER と KEYCLOAK_PASSWORD 変数)で設定されます。デフォルトでは、ユーザー名に”admin”、パスワードに”changeit”を使用してログインできます。
URL | 概要 |
---|---|
http://<deployment-url> | RapidMiner AI Hubのログイン画面 |
http://<deployment-url>/platform-admin | プラットフォームの管理 |
http://<deployment-url>/jupyter | JupyterHub |
http://<deployment-url>/grafana | ダッシュボード |
http://<deployment-url>/get-token | オフライントークンジェネレータ |
http://<deployment-url>/auth/admin | セキュリティ設定(Keycloak) |
使用されている技術やプラットフォームデプロイメントの操作や管理方法についてもっと学びたい場合は、テクノロジー概要のページをご覧ください。
※注意
タイムゾーンの変更
デフォルトでは、AI HubのタイムゾーンにはUTC(協定世界時)が使用されています。UTCでは日本の時刻とずれてしまうため、日本の時刻に合わせましょう。設定するには、/rapidminer/dockerフォルダにある.envファイル(隠しファイルです)を編集します。.envファイルを開き、TZをAsia/Tokyoの変更します。
# Timezone setting
TZ=Asia/Tokyo
RapidMiner StudioからAI Hub上のリポジトリに接続できないとき
RapidMiner StudioからAI Hub上のリポジトリに接続できない場合は、/rapidminer/dockerフォルダにある.envファイル(隠しファイルです)を編集してください。.envファイルを開き、LEGACY_REST_BASIC_AUTH_ENABLEDをfalseからtrueに変更します。
# Enable/disable the Legacy BASIC authentication support for REST endpoints, like webservices.
LEGACY_REST_BASIC_AUTH_ENABLED=true