Docker Deployment Manager
はじめに
このドキュメントでは、Docker Deployment Managerユーザーインターフェイスを使用して、RapidMinerデプロイメントのサービスのステータスと構成を監視および変更する方法について取り上げます。
Docker Deployment Managerは、シングルマシンのDocker環境のセットアップと設定をサポートします(マルチマシンのデプロイメントには、Kubernetesの使用を推奨します)。
いくつかあるタスクの中でも特に、以下の方法について記載しています。
- サービス(設定データベース、RapidMiner Server、ジョブエージェントなど)の状態(実行中/停止)の監視
- 任意のサービスの再起動
- RapidMiner Serverインスタンスに接続されているジョブエージェントの数のスケールアップ、スケールダウン
- 任意の個別のコンポーネントのログの確認
- docker設定ファイルの更新
- メモリ設定の変更
- ジョブエージェントが生成するジョブコンテナの数のスケールアップ、スケールダウン
- 一般的な、コンポーネントの再構成
- Docker Deployment Managerへのアクセスコントロールの管理
- 証明書の管理(httpsを設定している場合)
Docker Deployment Managerは、(コンテナ化された)RapidMinerデプロイメントの一部です。どこに当てはまるかは、デプロイメントの概要をご覧ください。
ログインとユーザー管理
デフォルトでは、ベーシックなHTTPユーザー認証を提供しています。追加要件がある場合は、プロキシコンテナの設定を調整し、適切な認証バックエンドを設定する必要があります。この内容は、このドキュメントの範囲外となります。
初回ログイン
Docker Deployment ManagerにアクセスするデフォルトURLは、RapidMinerプラットフォームのデプロイメントのポート5080番です(http://[server host]:5080)。HTTPSが設定されている場合は、ポートは5443になります。
デフォルトでは、adminユーザーが作成されています。初期パスワードは、使用するインフラの設定によって異なります。クラウドイメージベースのデプロイメントの場合、Amazon AWSの場合はインスタンスID、Microsoft Azureの場合はインスタンス名となります。
セキュアな運用を確保するために、最初に設定されているパスワードは、初回ログイン後に必ず変更してください。
ユーザー管理とセキュリティ
ユーザーの追加や削除は、Access Controlメニューで行います。
Docker Deployment Managerは、RapidMiner Serverとは独立した、独自のユーザー管理システムを持っています。初期状態では、adminユーザーのみ作成されています。Deployment Managerへのアクセスはグローバルで、特定のロールやパーミッションは定義されていません。
新規ユーザーの追加
Add new user to the admin pageフォームを使用します。
- Username欄に新規ユーザーのユーザー名を入力します。
- Password欄に新しいパスワードを入力します。
- Add Userボタンをクリックします。
パスワードの変更は、UsernameとPasswordの欄に旧ユーザー名と新パスワードを入力し、Add Userをクリックして行います。ログインしているユーザーのパスワードを変更すると、そのユーザーはすぐにログアウトされ、再度ログインを求められます。
また、ブラウザとDocker Deployment Manager間の通信を暗号化するために、SSL証明書をインストールすることもできます。Certificatesメニューをクリックし、証明書とキーを入力します。
管理者パスワードを忘れてしまった場合
管理者パスワードを忘れてしまった場合は、以下の方法で認証パスワードファイルの内容を上書きすることができます。
- htpasswd generator toolでレコードを生成します。
- ホスト(EC2インスタンス)上でシェルを開きます。
- 次のコマンドを実行して、パスワードを上書きします(<YOUR-PASSWORD>の部分は自身のパスワードに置き換えてください)。
docker-compose -f /rapidminer/docker-deployment-manager/docker-compose.yml exec -T webui bash -c "/usr/bin/htpasswd -mbn admin \"<YOUR-PASSWORD>\" > /var/www/html/uploaded/htpasswd_admins/latest_htpasswd_admin"
サービスの状態の監視
RapidMinerデプロイメントには、多くの独立したサービスが含まれていますが、これらは便宜上、デプロイメントのテンプレートにまとめられています。
- 設定database
- RapidMiner Server
- Job Agent
- またオプションとして、Radoop ProxyやPlatform Admin toolなどの追加サービスもあります。
Docker Deployment ManagerのStatus and logsメニューには、現在実行中のサービスの一覧が表示されます。表示される情報は以下です。
- container name
- container creation time
- container ID
- container image
- container network name
- container ports
サービス名の右側にあるボタンを使って、停止、起動、再起動することができます。コマンドの出力やログが表示されます。
また、ドロップダウンリストから必要な数を選択し、Scaleをクリックすることで、それらの拡張(インスタンスの追加や削除)することも可能です。ほとんどの場合、これは、サーバーに接続されているジョブエージェントの数を定めているため、Job Agentサービスにのみ有効です。
Docker Deployment Managerはシングルマシン環境のみを扱うため、スケーリングは常にデプロイされた物理または仮想ボックスの範囲内で行われることを覚えておいてください。
なお、各ジョブエージェントのジョブコンテナの数には影響しないので、既存のジョブエージェントの並列能力には変更はありません。ジョブコンテナを設定するには、下のセクションを確認してください。
また各サービスには、Container logsというリンクがあり、そのサービスのログを表示する新しいタブが開きます。100行程度の表示から、ログファイルの全内容を表示することができます(非常に長いファイルの場合、ブラウザの動作がかなり遅くなる可能性があるのでご注意ください)。
docker設定の更新
Deploymentメニューでは、Dockerの全構成を確認・更新することができます。これは非常に強力な機能で、Docker環境のどのような構成にも変更を加えることができます。自身の設定をアップロードして適用することも可能です。
まず、新しい設定が有効かを検証します。無効な場合は、エラーメッセージが表示されます。有効であれば、新しい設定が適用され、コマンド出力が表示されます。
もちろん、設定が間違っていると環境全体が停止するかもしれないので、取り扱いには注意してください。
設定の変更が役立つ、典型的なユースケースをいくつか紹介します。
- メモリ設定の変更
- サーバーのメモリ (SERVER_MAX_MEMORY)
- ジョブコンテナのメモリ(JOBAGENT_CONTAINER_MEMORYLIMIT)
- また、ジョブエージェントサービス内で生成されるジョブコンテナの数も編集できます(JOBAGENT_CONTAINER_COUNT)
設定内でそれらの変数を検索し、既存の数値を新しい数値に置き換えることができます。
新しい設定に変更できれば、Apply configurationを押して、変更が適用されるまでしばらく待ってください。