Diamond プラットフォームのデプロイ
インストーラパッケージが生成済みであることが前提です。Diamond ホストに /data
のフォルダを準備し、フォルダ内にインストーラパッケージがあることを確認します。
クラスタの事前確認
手動アーキテクチャの場合、すべてのホストが Diamond デプロイの前提条件を満たしている必要があります。 事前確認処理はデプロイプロセスの中で実行されます。ホストの前提要件は以下のとおりです。
項目 | Diamond ホスト | Senselink ホスト |
ホスト名 |
| 同左 |
OS バージョン | Ubuntu 16.04/CentOS 7.4 | Ubuntu 16.04/CentOS 7.4 |
Python バージョン | 2.7.15 | 2.7.12 |
Diamond SSH キー |
| Diamond ホストと同じ |
DNS レゾルバ | 適切な構成 | Diamond ホストと同じ |
ディスクボリューム | OS ボリュームが必要 | OS ボリュームが必要。少なくとも 1 つのデータボリューム |
ディスクの空き容量 | 100GB | 500GB |
GPU カード | - | 事前にGPUドライバーをインストールか、インストールのためにDiamondに置いておきます |
インターネットカード | IP および MAC | IP および MAC |
CPU 情報 | - | - |
メモリ情報 | - | - |
APT のアップデート | エラーが発生しないこと | エラーが発生しないこと |
DiamondによるGPUドライバーのインストール
・GPUドライバーがプリインストールされている場合、以下の手順をスキップできます。
・GPUドライバーをDiamondによってインストールする場合、以下の準備が必要です。
Kernel Source of the Centos7.4 in the GPU hosts
nouveauを無効にします。
config file /etc/modprobe.d/blacklist.conf
全てのECSホストに対してyumでlspciコマンドをインストールします
「config.js」にGPUドライバーを配置します。
GPU | ドライバーバージョン | サンプル |
Tesla P4 | 384.183 | nvidiaDriverVersion: '384.183' |
Tesla P100 | 410.129 | nvidiaDriverVersion: '410.129' |
Tesla T4 | 410.129 | nvidiaDriverVersion: '410.129' |
Reboot The ECS Hosts
Diamond デプロイメント構成の生成
セットアップを開始する前に、$install_package_path/config.yaml
でファイルを構成します。
項目 | 説明 | 例 |
HOSTS | ホスト名およびすべてのホストの IP をカンマで区切って指定 | 'hd1h1 192.168.1.201,hd1h2 192.168.1.202,hd1h3 192.168.1.203,hd1h4 192.168.1.204,hd1h5 192.168.1.205,hd1h6 192.168.1.206' |
DIAMOND_HOST | Diamond ホスト名 | 'hd1h1' |
MASTER_HOST | k8s マスターのホスト名 | 'hd1h2, hd1h3, hd1h4' |
WORKER_HOST | k8s ワーカーのホスト名 | 'hd1h1, hd1h5, hd1h6' |
LINK_NODE | Senselink ノードのホスト名 | 'hd1h2, hd1h5, hd1h6' |
ELASTICSEARCH_NODE | サービスのログストレージに使用する Elasticsearch ノードのホスト名 | 'hd1h2, hd1h5, hd1h6' elasticsearch |
K8S_MASTER_SLB_IP | k8s マスターホスト用の内部 SLB の IP。k8s マスターホストが 2 つ以上設定されている場合に必要 | '192.168.1.300' |
SENSELINK_PORTAL_IP | Senselink ポータル用の外部 SLB のドメインまたは IP | '192.168.1.300' |
MYSQL_HOST | MySQL リソースの URL | |
MYSQL_ROOT_USER | 高い特権をもつ MySQL のアカウント (許可、作成、挿入など) | - |
MYSQL_ROOT_PASSWORD | 上記アカウントのパスワード | |
MONGO_HOST | MongoDB リソースの URL | |
MONGO_PORT | MongoDB リソースのポート | |
MONGO_USERNAME | MongoDB のアカウント | - |
MONGO_PASSWORD | 上記アカウントのパスワード | |
REDIS_HOST | Redis リソースの URL | |
REDIS_PASSWORD | 上記アカウントのパスワード | |
MAIL_HOST | 電子メールの SMTP アドレス。上記アカウントの変更に関するイベント発生時に、電子メールを送信する際に使用される。 | |
MAIL_PORT | 電子メールの SMTP のポート | |
MAIL_USERNAME | 電子メールアカウント | - |
MAIL_PASSWORD | 電子メールアカウントのパスワード | |
OSS_ENABLE | Aliyun OSS の有効化 | true または false |
OSS_ENDPOINT | OSS のエンドポイント。OSS はイメージストレージに使用される。 | |
OSS_ACCESSID | OSS のアクセス ID | |
OSS_ACCESSKEY | OSS の アクセスキー | |
OSS_BUCKETNAME | OSS のバケット名 | |
NGINX_ACCESS_CONTROL_ALLOW_ORIGIN | 許可するドメイン名の設定 | |
TIME_ZONE | タイムゾーン | GMT+09:00 by default |
Diamond のインストールの実行
Diamond のインストールには時間かかるため (1.5~2 時間)、tmux
や screen
を使用してセッションを作成してから次のスクリプトを実行することを推奨します。セッションを作成しない場合、セッションのハングアップが原因でインストールが中断します。
インストーラの実行中、Diamond ワークフローインストーラの高度な実行ステップが表示されます。Diamond ホストで tail -f $install_package_path/setup_diamond.log
を実行してサブコンポーネントの詳細ログを表示することも可能です。
Diamond プラットフォームのインストールが正常に完了すると、ダイヤ型の図が画面に表示されます。Server error
というテキストが出力される場合はインストールが失敗したことを示します。詳細はサブコンポーネントログをご確認ください。問題の修正後、前述したコマンドを再実行します。
(オプション) k8s サービスノードのポート範囲の変更
Senselink Web サービスでは 80 番ポートが必要になるため、以下のコマンドを使用してk8s クラスタで k8s サービスノードのポート範囲を 1~65535 に変更する必要があります。
(オプション) Diamond ホストへの Diamond SSH プライベートキーの追加
ホストの稼働中、Diamond ホストから他のホストに対して ssh の実行が必要になることがよくあります。このようなシナリオ向けにクレデンシャルが設定済みかもしれませんが、設定していない場合は、diamond.key
を Diamond ホストのプライベートキーとして使用できます。すべてのホストには Diamond パブリックキーが設定されています。
以下のスクリプトを実行すると、Diamond キーが現行セッションのプライベートキーのリストに追加されます。
あるいは、ユーザの Diamond キーをホストのプライベートキーとして永続的に使用することもできます。
k8s ワーカーホストに k8s kubeconfig が設定されない問題の解決方法
Diamond ではk8s ワーカーホスト用の k8s kubeconfig は設定されませんが、SenseLink のデプロイでは、ワーカーホストにサービスをデプロイするために k8s kubeconfig が必要です。この問題に対処するには、以下のスクリプトを Diamond ホストで複数回実行し、Diamond ホスト IP と k8s ワーカー IP を host_ip
に割り当てます。
外部 SLB を使用した Diamond ポータルの設定とクラスタのモニタリング
Diamond プラットフォームのインストールが完了すると、Diamond ポータルが稼働します。ポータルサービスは、Kubernetes クラスタにインストールされます。このポータルには http://SLB_IP:30080/ でアクセスできます。
(オプション) 使用頻度の高い K8s コマンドのエイリアスの設定
このセクションの内容はオプションであり、クラスタの稼動時に頻繁にホストに対して ssh を実行する場合に便利です。
トラブルシューティングの際に頻繁に使用する k8s コマンドがいくつかあります。それらのコマンドをエイリアスとして設定することで、長いコマンドを入力する必要がなくなります。
最終更新