前回IDCFクラウドにCoreOS 494.5.0をISOからインスト-ルしました。同じ方法でISOから同じdiscoveryのURLを指定して、3台のCoreOSクラスタを構築します。Running Couchbase Cluster Under CoreOS on AWSはAWS CloudFormationをの例ですが、CoreOSクラスタを用意すれば同じfleet unit filesを使いCouchbase Server 3.0.1クラスタをインストールできます。ここがcloud provider agnosticなCoreOSのよいところです。
Couchbase Server
Couchbase Serverは分散型NoSQLドキュメント指向データベースです。REST APIを使ってJSONの操作ができます。Couchbaseは歴史上おもしろい特徴を持っています。CouchDBから始まるドキュメント型データベースの側面と、Membaseとの統合によるmemcached互換の分散メモリキャッシュサーバの側面があります。
couchbaselabs/couchbase-server-docker/3.0.1
Couchbase LabsプロジェクトがGitHubに公開しているインストーラーを使います。
Docker Hub Registryです。
Docker Hub Registryにあるアーキテクチャ図を転載します。IDCFクラウドの場合AWS CloudFormationの代わりにfleetでCoreOSクラスタを構築します。
CoreOSクラスタの確認
前回IDCFクラウドに3台構成のCoreOSクラスタを構築しました。
$ fleetctl list-machines |
cluster-init.shスクリプト
cluster-init.shスクリプトをダインロードして実行権限をつけます。
$ wget https://raw.githubusercontent.com/couchbaselabs/couchbase-server-docker/master/scripts/cluster-init.sh |
今回指定するcluster-init.shのオプションは以下の通りです。
- -v: バージョン ->
3.0.1
- -n: Couchbaseのノード数 ->
3
- -u: ユーザー名:パスワード ->
user:passw0rd
|
インストールスクリプトを実行します。
$ ./cluster-init.sh -v 3.0.1 -n 3 -u "user:passw0rd" |
ログに出力されているように、インストールスクリプトは以下の処理を行います。
- fleet unit filesをダウンロード
- 指定したノード数のfleet unit filesをテンプレートから生成
- etcdにCouchbaseのユーザー名とパスワードをセット
- fleetctlでservicesをインストール
Couchbaseクラスタの確認
fleetctlを使いCouchbase Serverのunitsが正常に動作していることを確認します。
$ fleetctl list-units |
Couchbase Serverのnodeは、couchbase_bootstrap_nodeを含めて3台作成できました。
- couchbase_bootstrap_node.service
- couchbase_node.1.service
- couchbase_node.2.service
Couchbase Server Web Admin
ブラウザを開き、Couchbase ServerのCoreOSのどれか1台に接続します。UsernameとPasswordは、cluster-init.shスクリプトの-uフラグで指定した、user:passw0rd
です。
http://10.3.0.193:8091fleetctl list-units
で表示しているのはプライベートIPアドレスです。プライベートIPアドレスに直接ブラウザで接続できない場合は、パブリックIPアドレスをどれか1つのCoreOS仮装マシンにポートフォワードします。
また、Dockerコンテナのlocaleを日本にしておくとログの日付が見やすくなります。
$ docker exec -it ff15f56166b7 bash |
Couchbaseクラスタをリバランスする
ブラウザでCouchbase Server Web Adminを開くと、Pending Rebalanceに2つのノードが残っているので、最初のリバランスをします。
- Server Nodes -> Rebalance