Cocktail Installation to baremetal on macos, linux
Mac、linuxがインストールされたPCでbaremetal機器にCocktailをインストールする手順は、次のとおりである。
事前準備
インストールする前に、以下のプログラムが予めインストールされていなければならない。インストールされていない場合は、エラーメッセージが発生する。
1) 提供されるcubeのバイナリをどのディレクトリでも使用できるよう、環境変数のpathを設定する。
2) Dockerダウンロード後、インストール
( ダウンロードリンク : https://store.docker.com/search?offering=community&q=&type=edition )
3) SSH key作成
インストールしたpcで、各サーバー(baremetal機器)にsshで接続してインストールするため、ssh-keyの作成が必要である。既存のssh-keyを使用しても構わない。
< ssh keyの新規発行方法 >
# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/cloud/.ssh/id_rsa): /tmp/cubetest/id_rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /tmp/cubetest/id_rsa.
Your public key has been saved in /tmp/cubetest/id_rsa.pub.
The key fingerprint is:
SHA256:liTKyW/l3eU9+mBzyksL0AKpYXRsvsQ793nWJiUgJC0 [email protected]
The key's randomart image is:
+---[RSA 2048]----+
| .... |
| . .E.o |
| o=o= |
| o.oo*.o.. |
| =.. So... . |
| . B oo. + o |
| o + o.o==o.|
| . o=+Bo.|
| o*=. |
+----[SHA256]-----+
4) ssh-keyのコピー
インストールされたpcで、各サーバー(baremetal機器)にsshで接続できるよう、発行されたssh Publicキーを各サーバーにコピーする。
# ssh-copy-id -i id_rsa.pub root@ip
5) もし、NFSサーバーが別途存在しない場合は、特定のノードにNFS Serverをインストールする。残りのノードには、すべてにnfs-utilをyumでインストールする。
# yum install -y nfs-utils
# vi /etc/exports // 該当ファイルに以下の内容を記述して保存。
/nfs 203.236.100.0/24(rw,sync,no_root_squash,no_all_squash)
// rpcbind、nfs-serverをサービスに登録および起動。
# systemctl enable rpcbind
# systemctl enable nfs-server
# systemctl start rpcbind
# systemctl start nfs-server
ㅤ
インストール
1. まずインストールするために、以下のとおり空のディレクトリを作成し、そのディレクトリに移動する。
# mkdir /Desktop/baremetal
# cd /Desktop/baremetal
2.cubeコマンドを使用して、baremetal用のインストールscriptをdownloadする。
# cube init -p baremetal
3. 作成されたスクリプトのうち、cube.yamlファイルをエディタで開き、インストールするVMの情報を書き込んだ後、保存する。
( 下記は、master2、worker3台、nfs serverで構成される一例である)
もし、外部のLoadBalancerの利用を可能とし、masterを二重化する場合は、lb_ipに該当load balancer ipを書き込む。
---
cloud_provider: "baremetal"
# (required) Master node ips(comma separated).
master_ip: ["203.236.100.10","203.236.100.11"] -> Master Node ip 書き込み
# (optional) Master node private ips(comma separated).
master_private_ip: ["10.0.0.2","10.0.0.3"] -> Master Node private ip 書き込み
# (required) Worker node ips(comma separated).
worker_ip: ["203.236.100.12", "203.236.100.13", "203.236.100.14"] -> Worker Node ip 書き込み
# (optional) Worker node private ips(comma separated).
worker_private_ip: ["10.0.0.4","10.0.0.5","10.0.0.6"] -> Worker server private ip 書き込み
# (required) Set true if high-availability is required. -> haproxy 使用有無(true of false 書き込み)
haproxy: false
# (conditional) Set load-balancer ip. -> LB使用する場合は該当ipを書き込み、使用しない場合は空欄
lb_ip:
# (required) ssh username to access server.
ssh_user_id: "root"
# (required) Absolute Path to an SSH private key file to access server.. -> ssh-privateキーパスを書き込む
private_key_path: "/path/to/ssh_private_key"
# (required) Absolute Path to an SSH public key file to be provisioned as the SSH key. -> ssh-publicキーパスを書き込む
key_path: "/path/to/ssh_public_key"
# (required) Data directory for docker, kubelet, etcd, log.
data_dir: "/cocktail"
# Kubernetes -> 基本的に変更しない。
k8s_version: "1.9.8"
cluster_name: "cube"
domain_name: "acornsoft.io"
addons:
cm: true
km: false
# (optional) if nfs server available
nfs_ip: "203.236.100.15" -> nfsサーバーのipを書き込む
nfs_mountdir: "/nfs" -> nfsサーバーの共有ディレクトリパスを書き込む
# Prometheus Rule Language - en, ko, jp
alertmsg_lang: "jp" # monitoring alarmが使用する言語
# cluster id
cluster_id: "unique_clister_id" # clusterの一意の識別子、50文字未満
4.cube.yamlファイルがあるパスで、cube createコマンドを使用し、実際にVMにcocktailをインストールする。
# cube create
5.問題なく問題なくインストールが完了したら、master機器にsshで接続し、cocktail-systemを構成するコンテナが正常に起動するかを確認する。
# ssh -i ~/cube/pki/id_rsa [email protected]
# watch -n1 "kubectl get pods -n cocktail-system"
NAME READY STATUS RESTARTS AGE
apollomq-59fbfbb7c4-nzpls 1/1 Running 0 3d
cocktail-api-7c9bb84c46-dgw8c 1/1 Running 0 3d
cocktail-client-5869fb7975-tmckz 1/1 Running 0 3d
cocktail-cmdb-fd87c6c5f-tfzlg 1/1 Running 1 3d
cocktail-dashboard-fb6f8f5b9-zn6sj 1/1 Running 0 3d
redis-cb9c6859f-qq4f8 1/1 Running 0 3d
6.ブラウザで http://VMのmasterip:30000に接続すると、cocktail login画面に接続することができる。
削除
1.削除はオプションに応じて、k8s clusterのみ削除するか、またはscriptをすべて整理してcube.yamlファイルをバックアップすることができる。
デフォルトでオプションを与えない場合は、作成したk8s clusterのみ削除してインストールスクリプトはそのまま維持し、-fオプションを追加すると、cube.yamlファイルをcube.yaml.orgとしてバックアップファイルを作成した後、インストールスクリプトもすべて削除する。
したがって、このコマンドは注意の上、実行しなければならない。
# cd /Desktop/cubetest
// k8sのみ削除し、インストールスクリプトはそのまま維持
# cube destroy
// k8sとインストールスクリプトを削除し、cube.yamlをcube.yaml.orgファイルとしてバックアップ
# cube destroy -f
-f オプションで削除した後、再インストールするためには、cube initコマンドでインストールスクリプトを再ダウンロードしてからインストール。