Slide 1

Slide 1 text

Copyright © NHN Techorus Corp. NHNテコラス株式会社 クラウドサービス開発室 宮⽥ 晃佳 複数インスタンスでRancherをはじめよう Service Site Facebook Twitter ハッシュタグ https://cloudgarage.jp @CloudGarage.PR @CloudGarage_PR #CloudGarage

Slide 2

Slide 2 text

Page 2 概要 Dockerのようなコンテナ技術は、 コンテナ内に環境を構築して、 サーバーインスタンスのリソースを有効活⽤できる??? 実際のサービスって、Web+DB構成になるよね? Docker内に環境構築して、複数構成だーってなって、 いざ拡張しようとしてコピーしたら DBまでコピーされちゃって、運⽤どうすれば??? DBをマスター、スレーブ構成にしたり、クラスタリングしたり しないと・・・ まずはRancherが安全に稼動するために複数インスタンスでの 管理⽅法を説明します

Slide 3

Slide 3 text

Page 3 Instance-01 Instance-02 Instance-03 Replication 最終ゴール DB (Rancher-Server) DB (Rancher-Server) DB (Rancher-Server) Docker-container RANCHER-Server Docker-container RANCHER-Server Docker-container RANCHER-Server

Slide 4

Slide 4 text

Page 4 インスタンスの準備

Slide 5

Slide 5 text

Page 5 インスタンス Service Site Facebook Twitter https://cloudgarage.jp @CloudGarage.PR @CloudGarage_PR

Slide 6

Slide 6 text

Page 6 サーバーインスタンスの⽤意 インスタンス :CPU 3Core メモリ 4GB SSD 150GB OS :Ubuntu 16.04 64bit 接続許可ポート :22, 8080 インスタンス名 :Instance01、02、03 rootパスワード :内緒 3つのインスタンスを⽤意します Instahce01 Instance02 Instance03

Slide 7

Slide 7 text

Page 7 インスタンス情報確認 グローバルとプライベートのIPアドレスを確認します Instahce01 Instance02 Instance03

Slide 8

Slide 8 text

Page 8 ロードバランサー作成 ロードバランサーを作成し、設定します ロードバランサー名 :任意 バランシング設定 バランシング元ポート:8080 バランシング先ポート:8080 バランシング⽅法 :Source IP ヘルスモニター設定 プロトコル :TCP チェック周期 :10秒

Slide 9

Slide 9 text

Page 9 ロードバランサー設定確認 バーチャルIPの確認と、LBへインスタンスを接続します Instahce01 Instance02 Instance03

Slide 10

Slide 10 text

Page 10 Docker・Rancherインストールと設定

Slide 11

Slide 11 text

Page 11 各インスタンスで以下のコマンドを実⾏し、Dockerをインストールします Dockerインストール # apt-get update # apt-get install ¥ apt-transport-https ¥ ca-certificates ¥ curl ¥ software-properties-common # curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - # add-apt-repository ¥ "deb [arch=amd64] https://download.docker.com/linux/ubuntu ¥ $(lsb_release -cs) ¥ stable" # apt-get update # apt-get install docker-ce # docker info 【Tips:最新版のDockerがRancherに対応していない場合】 Dockerのインストール時にバージョンを指定してください # apt-get install docker-ce= 参考: https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/#install-using-the-repository Instahce01 Instance02 Instance03

Slide 12

Slide 12 text

Page 12 MariaDB Serverを各インスタンスへインストールします DBインストール # apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 ¥ 0xF1656F24C74CD1D8 ¥ add-apt-repository 'deb [arch=amd64,i386,ppc64el] ¥ http://nyc2.mirrors.digitalocean.com/mariadb/repo/10.1/ubuntu xenial main‘ ¥ apt-get update ¥ apt-get -y install mariadb-server Rootのパスワード⼊⼒を忘れずに Instahce01 Instance02 Instance03

Slide 13

Slide 13 text

Page 13 各インスタンスのMariaDB Serverを停⽌します DBクラスタリング設定 # systemctl stop mysql 各インスタンスのgalera.confの/etc/mysql/conf.d/への配置します [mysqld] bind-address=0.0.0.0 [galera] binlog_format=ROW default-storage-engine=innodb innodb_autoinc_lock_mode=2 wsrep_on=ON wsrep_provider=/usr/lib/galera/libgalera_smm.so wsrep_cluster_name="test_cluster" wsrep_cluster_address=“gcomm:// (instance01プライベートIPアドレス), (instance02プライ ベートIPアドレス), (instance03プライベートIPアドレス)" wsrep_sst_method=rsync wsrep_node_address=“ (設定中のインスタンスプライベートIPアドレス)" Instahce01 Instance02 Instance03

Slide 14

Slide 14 text

Page 14 DBクラスタリング設定(続き) MariaDB Galera Clusterを起動します # galera_new_cluster 他のインスタンスのMariaDBをClusterに参加させます # systemctl start mysql MariaDB Galera Clusterにログインし、構成を確認します # mysql -u root -h 127.0.0.1 –p # show status like 'wsrep_%' Instahce01 Instance02 Instance03 Instahce01 Instance02 Instance03 Instahce01 Instance02 Instance03 wsrep_local_state_commentがSyncedになっていること wsrep_incoming_addressesに対象インスタンスのノードアドレスが⼊っていること Rancher Server⽤のアカウントとDBを準備します # CREATE DATABASE IF NOT EXISTS cattle COLLATE = 'utf8_general_ci‘ ¥ CHARACTER SET = 'utf8'; # GRANT ALL ON cattle.* TO 'cattle'@'%' IDENTIFIED BY 'cattle'; Instahce01 Instance02 Instance03

Slide 15

Slide 15 text

Page 15 Rancherインストール # docker run -d --restart=unless-stopped --name rancher_server -p 8080:8080 -p 9345:9345 rancher/server ¥ --db-host (各インスタンスのプライベートネットワークのIPアドレス) --db-port 3306 -- db-user cattle --db-pass cattle --db-name cattle ¥ --advertise-address (各インスタンスのプライベートネットワークのIPアドレス) Rancher Serverを起動します 起動を確認します Instahce01 Instance02 Instance03 http://(ロードバランサーのバーチャルIP):8080

Slide 16

Slide 16 text

Page 16 Rancher設定確認 メニュー 「管理者」->「⾼可⽤性」からRancher Serverを確認します

Slide 17

Slide 17 text

Page 17 Rancher ACL設定 RancherUIから、ローカル認証を設定します ログアウトすると、 ログイン画⾯が表⽰されるか 確認します

Slide 18

Slide 18 text

Page 18 Rancher Agentインストール事前確認 ホストを追加する前にサイトのアドレスを確認します ホスト登録 URLが 「http://(ロードバランサーのバーチャルIP):8080」 になっていることを確認して、「保存」をクリック

Slide 19

Slide 19 text

Page 19 Rancher Agentインストール ホストを追加します Step.4にサーバーインスタンスの 「ローカルIPアドレス」を⼊⼒ Step.5のコマンドをコピー SSHログイン後に、コピーしたコマンドを実⾏ (インスタンスすべてに実施) Instahce01 Instance02 Instance03

Slide 20

Slide 20 text

Page 20 Rancher Agentインストール確認 Dockerホストが各インスタンスに配置されているか確認します

Slide 21

Slide 21 text

Page 21 Instance-01 Instance-02 Instance-03 Replication まとめ DB (Rancher Server) DB (Rancher Server) DB (Rancher Server) Docker-container RANCHER Server Docker-container RANCHER Server Docker-container RANCHER Server

Slide 22

Slide 22 text

Service Site Facebook Twitter hashtag https://cloudgarage.jp @CloudGarage.PR @CloudGarage_PR #CloudGarage