LoginSignup
2
4

More than 3 years have passed since last update.

YugaByteDB(2) Rookを使ったインストール

Last updated at Posted at 2019-12-11

この記事は「RookだらけのAdvent Calender」11日目の記事です。

昨日分は概要ということで、Rookのストレージ・プロバイダーとしてYugaByteDBが入っている意味や、データベースとしてのアーキテクチャなどを簡単に解説しました。

本日からは実際にYugaByteDBをさわっていきますが、まずはRookを使ってインストールしていきます。

Rook quick start -YugaByteDB-

インストールの前提条件として、以下が必要になります。

  • Kubernetesクラスタ
  • 3台以上のWorker Node
  • standardの名前で利用可能なStorageClass ※クラウドストレージが使いやすいはず。

上記はcluster.yamlを修正する場合には必須ではありませんが、デフォルトのyamlをapplyする際には確認しておきましょう。

準備が出来ていれば、quick startに書いてある通りにインストールを進めます。

インストールは簡単

YugaByteDBのRook対応は現時点でシンプルなので、インストール自体も簡単、2つのYAMLをapplyするだけです。

$ kubectl apply -f cluster/examples/kubernetes/yugabytedb/operator.yaml
$ kubectl apply -f cluster/examples/kubernetes/yugabytedb/cluster.yaml

これにより、rook-yugabytedb-systemとrook-yugabytedbの2つのNamespaceが切られ、OperatorおよびYugaByteDBのコンポーネントが配置されます。

KubernetesレベルでどんなPodが配置されたかを確認すると以下のようになっています。

$ kubectl get pod -n rook-yugabytedb-system
NAME                                        READY   STATUS    RESTARTS   AGE
rook-yugabytedb-operator-7f4b8c7dc5-prpk4   1/1     Running   0          1d

$ kubectl get pod -n rook-yugabytedb       
NAME                              READY   STATUS    RESTARTS   AGE
yb-master-hello-ybdb-cluster-0    1/1     Running   0          1d
yb-master-hello-ybdb-cluster-1    1/1     Running   0          1d
yb-master-hello-ybdb-cluster-2    1/1     Running   0          1d
yb-tserver-hello-ybdb-cluster-0   1/1     Running   0          1d
yb-tserver-hello-ybdb-cluster-1   1/1     Running   0          1d
yb-tserver-hello-ybdb-cluster-2   1/1     Running   0          1d

何が出来たか

先ほどのPodを確認すると、YugaByteDBの2種類のプロセスが確認できます。

  • YB-Master process ・・・メタデータの管理や操作の振分けを担当
  • YB-TServer process ・・・テーブルデータの保持/提供を担当

詳しい用語の解説はこちらの公式ドキュメントに記載があります。

MasterおよびTServerではメタデータ/ユーザデータを3重に分散して持ち、RaftによりLeader-Followerを決定しています。

上記の用語を抑え、Kubernetes上のNodeに分散配置されたYugaByteDBのプロセスを図示すると下図のようになります。それぞれのPodにはPersistentVolumeが接続されています。

image.png

YugaByteDBへの接続

構築が完了したYugaByteDBには、YB-TServerのPodにkubectl execで接続し、そこからysqlshというクライアントツールでログインします。
※ysqlshはPostgreSQLのpsqlに相当するものと考えて下さい。

(kubectlとysqlshを使った接続の例)

$ kubectl -n rook-yugabytedb exec -it yb-tserver-hello-ybdb-cluster-0 /home/yugabyte/bin/ysqlsh -- -h yb-tserver-hello-ybdb-cluster-0  --echo-queries

ysqlsh (11.2)
Type "help" for help.

postgres=# 

見て頂くと分かるとおり、ysqlshの表示内容はpsqlそのものです。

Web UIも同時に起動される

YugaByteDBをRookでインストールすることで、管理用のユーザインタフェースも同時に導入されます。

image.png

こちらの利用にはKubernetes環境に応じたServiceのセットアップが必要になりますので、こちらを参考に設定して下さい。

まとめ

ここまでRookでYugaByteDBをインストールし、CLIとUIでの接続を試してきました。
明日からは実際にテーブルを作成し、データを入れた後にSQLクエリの実行を行っていきます。

よろしくお願いします。

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4