はじめに
こんにちはSIOS Tech Labアドベントカレンダー11日目になります。私は現在KubeBlocksの調査検証をしており、それについての解説ブログをシリーズとして投稿しています。第1回はKubeBlocksについて解説を行い、第2回ではKubeBlocksでサポートされているDBソリューションについて解説を行いました。
今回からは実際にKubernetes環境にKubeBlocksを導入し、データベースの運用管理を自動化するサービスであるDBaaSを構築していきます。DBaaSについてはこちらの記事で詳しく解説をしているので興味のある方はぜひご覧ください。
また、今後の記事では、構築したDBaaS上でデータベースの作成やスケーリングなどの具体的な操作の解説も行っていく予定です。 今回は、KubeBlocksの導入手順について解説しますので、ぜひ最後までご覧ください。
導入環境構成図
以下の図は今回KubeBlocksを導入する環境の構成図です。今回の記事では赤い丸でマーキングされた範囲を対象としています。
今回の対象範囲は「KubeBlocksオペレーター」です。KubeBlocksオペレーターはKubernetesクラスタ内で、データベースのデプロイ・スケーリング・自己修復などの運用作業を自動的に実行するカスタムオペレーターです。
KubeBlocksの導入方法
KubernetesクラスタにKubeBlocksを導入する方法について、公式サイトでは以下の2つの方法が紹介されています
- Helm :本番環境に推奨されるインストール方法
- kbcli :検証や学習環境向きのインストール方法
今回は、この2つの導入方法をそれぞれ実行し、その手順を紹介します。
前提条件
- Kubernetesクラスタがセットアップ済みであること
- kubectl コマンドが使用可能であること
- Helmがインストールされていること (インストールガイド)
- スナップショットコントローラがインストールされていること(インストールガイド)
kbcliインストール
KubeBlocksのバージョンと一致させたバージョンのkbcliをインストールします。
今回はKubeBlocksv1.0.1をインストールするためkbcliも同様にv1.0.1をインストールします。
curl -fsSL https://kubeblocks.io/installer/install_cli.sh | bash -s v1.0.1
HelmによるKubeBlocks導入
HelmによるKubeBlocks導入を実施します。
CRDを追加する
KubeBlocksが使用するカスタムリソース定義 (CRD) をKubernetesクラスタに登録します。これを行うことでKubeBlocksで提供される機能を利用することが出来るようになります。
kubectl create -f
https://github.com/apecloud/kubeblocks/releases/download/v1.0.1/kubeblocks_crds.yaml
# 出力例
customresourcedefinition.apiextensions.k8s.io/clusterdefinitions.apps.kubeblocks.io created
customresourcedefinition.apiextensions.k8s.io/clusters.apps.kubeblocks.io created
customresourcedefinition.apiextensions.k8s.io/componentdefinitions.apps.kubeblocks.io created
# ~以下省略~
Helmリポジトリを追加する
KubeBlocksのHelmチャートが格納されている外部リポジトリを、ローカルのHelm環境に登録しチャートを取得可能にするコマンドです。
helm repo add kubeblocks https://apecloud.github.io/helm-charts
helm repo update
# 出力例
"kubeblocks" already exists with the same configuration, skipping
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "piraeus-charts" chart repository
...Successfully got an update from the "kubeblocks" chart repository
Update Complete. ⎈Happy Helming!⎈
KubeBlocksインストール
KubeBlocksオペレーターをKubernetesクラスタにデプロイします。
helm install kubeblocks kubeblocks/kubeblocks --namespace kb-system --create-namespace --version=v1.0.1
# 出力例
NAME: kubeblocks
LAST DEPLOYED: Mon Dec 8 13:46:15 2025
NAMESPACE: kb-system
STATUS: deployed
REVISION: 1
TEST SUITE: None
インストール確認
kubeblocks-xxxxxxxxxx-xxxxx
kubeblocks-dataprotection-xxxxxxxxxx-xxxxx
の二つのPodがRunningになっていることを確認します。
kubectl get pods -n kb-system
# 出力例
NAME READY STATUS RESTARTS AGE
kubeblocks-777d976794-pfwlg 1/1 Running 0 5m16s
kubeblocks-dataprotection-84db8c4c9-dmqx2 1/1 Running 0 5m16s
snapshot-controller-58455ddb79-6nw4c 1/1 Running 0 9m1s
kbcliによるKubeBlocks導入
kbcliによるKubeBlocks導入を実施します。
KubeBlocksインストール
以下のコマンドは、KubeBlocksの導入プロセス全体を自動化する単一のコマンドです。helmでは別コマンドで実行したCRDの適用、Helmリポジトリの追加、オペレーターのデプロイなどをkbcliではまとめて実行します。
kbcli kubeblocks install --version=1.0.1 --create-namespace
# 出力例
KubeBlocks will be installed to namespace "kb-system"
Kubernetes version 1.33.1
kbcli version 1.0.1
Collecting data from cluster OK
Kubernetes cluster preflight OK
Create CRDs OK
Add and update repo kubeblocks OK
Install KubeBlocks 1.0.1 OK
Wait for addons to be enabled
apecloud-mysql OK
etcd OK
kafka OK
mongodb OK
mysql OK
postgresql OK
redis OK
KubeBlocks 1.0.1 installed to namespace kb-system SUCCESSFULLY!
-> Basic commands for cluster:
kbcli cluster create -h # help information about creating a database
cluster
kbcli cluster list # list all database clusters
kbcli cluster describe <cluster name> # get cluster information
-> Uninstall KubeBlocks:
kbcli kubeblocks uninstall
インストール確認
kubeblocks-xxxxxxxxxx-xxxxx
kubeblocks-dataprotection-xxxxxxxxxx-xxxxx
の二つのPodがRunningになっていることを確認します。
kubectl get pods -n kb-system
# 出力例
NAME READY STATUS RESTARTS AGE
kubeblocks-777d976794-vbl24 1/1 Running 0 4m40s
kubeblocks-dataprotection-84db8c4c9-ppkcs 1/1 Running 0 4m40s
snapshot-controller-58455ddb79-sks7q 1/1 Running 0 9m59s
おわりに
今回はhelmとkbcliを利用してKubernetes上にKubeBlocksを導入する方法を紹介しました。
次回からは実際にKubeBlocksにデータベースを導入していきます。
参考文献
https://kubeblocks.io/docs/preview/user_docs/references/install-kbcli
https://kubeblocks.io/docs/release-1_0/user_docs/overview/install-kubeblocks


