😊

KubernetesにyugabyteDBをインストールする

2021/07/11に公開

はじめに

環境

  • 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は使用することはできませんでした。

参考URL

GitHubで編集を提案

Discussion