😊
KubernetesにyugabyteDBをインストールする
はじめに
環境
- WSL2: Ver20
- Helm: v3.6.1
事前準備
kind(Kubernetes in docker)によるClusterを構成する
cluster-config.yaml
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
networking:
apiServerAddress: "127.0.0.1"
apiServerPort: 6443
nodes:
- role: control-plane
- role: worker
Clusterの作成
kind create cluster --config=(path)/clustr-config.yaml
Helmのインストール
helmの公式を参考にインストールします。
curl https://baltocdn.com/helm/signing.asc | sudo apt-key add -
sudo apt-get install apt-transport-https --yes
echo "deb https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list
sudo apt-get update
sudo apt-get install helm
YugabyteDBについて
YugabyteDBの概要
YugabyteDBはPostgreSQL互換の分散SQLデータベースです。
詳細情報は以下の記事にてまとめられています。
YugabyteDBをインストールする目的。
Kubernetes Cluster上にジョブ管理ツールであるAirflowを使用したい。また、AirflowのジョブファイルはPostgreSQLに保管することができる。そのため、今回AirflowのバックエンドにPostgreSQLではなく、YugabyteDBを入れて検証してみたかったというのがあります。
YugabyteDBのインストール
-
database
namespaceの作成。
kubectl create namespace database
- chartレポジトリの追加
helm repo add yugabytedb https://charts.yugabyte.com
- install
helm install yugabyte yugabytedb/yugabyte \
--set resource.master.requests.cpu=0.5,resource.master.requests.memory=0.5Gi,\
resource.tserver.requests.cpu=0.5,resource.tserver.requests.memory=0.5Gi --namespace database
- 確認
kubectl exec -n database -it yb-tserver-0 -- /home/yugabyte/bin/ysqlsh -h yb-tserver-0.yb-tservers.database
shellからログインさえできてしまえば、あとは普通のPostgreSQLのコマンドが使えます。
今回はApache Airflowを使いたいので、Airflow用のDatabaseとUserを作成します。
yugabyte=# CREATE USER su_airflow PASSWORD 'su_airflow';
yugabyte=# CREATE DATABASE airflow;
yugabyte=# GRANT ALL PRIVILEGES ON DATABASE airflow TO su_airflow;
YugabyteDBは完全にPostgreSQL対応ではない。
YugabyteDB currently doesn’t support the ALTER TABLE ADD PRIMARY KEY command (GitHub Issue #1104) which means that the Airflow initdb command won’t work out of the box.
とYugabyteDBの公式Blogに記載があり、残念がらAirflowのBackendにYugabyteDBは使用することはできませんでした。
Discussion