I am using clickhouse database and data are stored at /media/user/data/clickhouse
and /media/user/data/clickhouse-server
. When I run a docker container
$ docker run \
--name local-clickhouse \
--ulimit nofile=262144:262144 \
-u 1000:1000 \
-p 8123:8123 \
-p 9000:9000 \
-p 9009:9009 \
-v /media/user/data/clickhouse:/var/lib/clickhouse \
-v /media/user/data/clickhouse-server:/var/log/clickhouse-server \
-dit clickhouse/clickhouse-server
I see the data and everything is fine. I am trying to run this in a pod using minikube with following persistent volume configs:
apiVersion: v1
kind: PersistentVolume
metadata:
name: host-pv-clickhouse
spec:
capacity:
storage: 4000Gi
volumeMode: Filesystem
storageClassName: standard
accessModes:
- ReadWriteOnce
hostPath:
path: /media/user/data/clickhouse
type: DirectoryOrCreate
and
apiVersion: v1
kind: PersistentVolume
metadata:
name: host-pv-clickhouse-server
spec:
capacity:
storage: 4000Gi
volumeMode: Filesystem
storageClassName: standard
accessModes:
- ReadWriteOnce
hostPath:
path: /media/user/data/clickhouse-server
type: DirectoryOrCreate
Additionally, I also have persistent volume claims:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: host-pvc-clickhouse-server
spec:
volumeName: host-pv-clickhouse-server
storageClassName: standard
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 2000Gi
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: host-pvc-clickhouse
spec:
volumeName: host-pv-clickhouse
storageClassName: standard
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 2000Gi
and finally service and deployment:
apiVersion: v1
kind: Service
metadata:
name: clickhouse
spec:
type: NodePort
ports:
- protocol: TCP
name: tcp
port: 9000
targetPort: 9000
nodePort: 30003
- protocol: TCP
name: http
port: 8123
targetPort: 8123
nodePort: 30004
- protocol: TCP
name: interncomm
port: 9009
targetPort: 9009
nodePort: 30005
selector:
app: clickhouse
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: clickhouse
labels:
app: clickhouse
spec:
replicas: 1
selector:
matchLabels:
app: clickhouse
template:
metadata:
labels:
app: clickhouse
spec:
containers:
- name: clickhouse
image: clickhouse/clickhouse-server:latest
ports:
- containerPort: 8123
name: http
- containerPort: 9000
name: tcp
- containerPort: 9009
name: interncomm
volumeMounts:
- name: clickhouse-volume
mountPath: /var/lib/clickhouse
- name: clickhouse-server-volume
mountPath: /var/log/clickhouse-server
volumes:
- name: clickhouse-volume
persistentVolumeClaim:
claimName: host-pvc-clickhouse
- name: clickhouse-server-volume
persistentVolumeClaim:
claimName: host-pvc-clickhouse-server
When I run
kubectl apply -f chdb_node.yaml
it works and I can access the database via clickhouse's web gui. However, the data aren't there.
Any suggestions to how to fix this?