minikube 搭clickhouse 集群
- 准备
- 启动minikube
- [helm 拉取镜像](#helm 拉取镜像)
- [搭建一个最简单的 ClickHouse 集群](#搭建一个最简单的 ClickHouse 集群)
准备
安装minikube
安装helm
安装kubectl等
启动minikube
$ minikube start --driver=docker --image-mirror-country='cn' --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers' --registry-mirror='https://docker.mirrors.ustc.edu.cn' --cpus=4 --memory=3092 --disk-size=50g
k8s 官网只说了minikube start,这样默认分配的内存,磁盘比较小,另外默认从国外服务器拉取镜像,会失败,这样配置国内源
helm 拉取镜像
$ helm upgrade --install clickhouse-operator altinity/altinity-clickhouse-operator --namespace clickhouse --set crdHook.enabled=false --set image.pullPolicy=IfNotPresent --create-namespace \
\-n clickhouse
输出
LAST DEPLOYED: Fri May 15 14:46:20 2026
NAMESPACE: clickhouse
STATUS: deployed
REVISION: 1
DESCRIPTION: Install complete
TEST SUITE: None
解释
--set image.pullPolicy=IfNotPresent ,镜像如果本地不存在才拉取,
--create-namespace -n clickhouse 创建名为clickhouse的命名空间
检查pod状态
kubectl get pod -n clickhouse

显示running就代表成功启动了
之前遇到的问题
kubectl get pod 查看的时候状态为ErrImagePullBackOff
原因:minikube里是一个独立的网络,docker没有用本地配置的国内源,导致拉取失败,minikube start的时候指定docker国内源后这个问题解决了
实际如果要测试的话,可以minikube ssh,进入内部空间,然后docker pull hello-world等镜像试试
pod状态异常查看
kubectl describe pod clickhouse-operator-altinity-clickhouse-operator-7bcf95549r22cb -n clickhouse

重点看Event 下的错误信息,像ErrImagePullOff 就是这其中有些镜像拉去失败了
实在不行,可以本地拉取镜像,然后load到minikube,然后重启pod
docker pull xxxxx
minikube image load xxxxx
helm upgrade --install clickhouse-operator altinity/altinity-clickhouse-operator --namespace clickhouse --set crdHook.enabled=false --set image.pullPolicy=IfNotPresent --create-namespace
-n clickhouse
搭建一个最简单的 ClickHouse 集群
第一步:准备 YAML 文件
1分片1副本的测试集群
创建一个 first-cluster.yaml,内容如下:
apiVersion: "clickhouse.altinity.com/v1"
kind: "ClickHouseInstallation"
metadata:
name: cluster01
spec:
configuration:
clusters:
- name: cluster01
layout:
shardsCount: 1
replicasCount: 1
2.部署
kubectl apply -f first-cluster.yaml -n clickhouse
3.查看集群状态
# 查看 ClickHouseInstallation 资源的状态
kubectl get chi -n clickhouse
# 查看pod
kubectl get pods -n clickhouse
4.连接测试
kubectl exec -it chi-cluster01-cluster01-0-0-0 -n clickhouse -- clickhouse-client
查询测试
SELECT version();
SELECT cluster, host_name FROM system.clusters;