Diamond プラットフォームのデプロイ
インストーラパッケージが生成済みであることが前提です。Diamond ホストに /data
のフォルダを準備し、フォルダ内にインストーラパッケージがあることを確認します。
クラスタの事前確認
手動アーキテクチャの場合、すべてのホストが Diamond デプロイの前提条件を満たしている必要があります。 事前確認処理はデプロイプロセスの中で実行されます。ホストの前提要件は以下のとおりです。
項目
Diamond ホスト
Senselink ホスト
ホスト名
/etc/hosts
にマッピング済み
同左
OS バージョン
Ubuntu 16.04/CentOS 7.4
Ubuntu 16.04/CentOS 7.4
Python バージョン
2.7.15
2.7.12
Diamond SSH キー
/home/ubuntu/authorized_keys
に設定済み
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 コマンドがいくつかあります。それらのコマンドをエイリアスとして設定することで、長いコマンドを入力する必要がなくなります。
最終更新