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コマンドでインストールスクリプトを再ダウンロードしてからインストール。

results matching ""

    No results matching ""