I have tried to install MariaDB ColumnStore on Kubernetes. I am using Windows 10 and have my kubernetes cluster inside a VBox.
This is what I have tried so far:
First I went to https://github.com/mariadb-corporation/mariadb-kubernetes/tree/master/mariadb-enterprise and downloaded the git repo.
git clone https://github.com/mariadb-corporation/mariadb-kubernetes
I CD to the directory of the folder and try to install the chart using Helm without any modification to the values file to see if it works.
helm install mariadb-enterprise/ --name my_cluster
It works. But when I try to change the topology to "columnstore"
helm install mariadb-enterprise/ --name my_cluster --set mariadb.cluster.topology = columnstore-standalone
I get the following error
my-cluster-mdb-cs-single-0 0/1 Init:ErrImagePull 0 18s
I get the following output when I use
kubectl describe pod my-cluster-mdb-cs-single-0
Name: my-cluster-mdb-cs-single-0
Namespace: default
Priority: 0
PriorityClassName: <none>
Node: minikube/10.0.2.15
Start Time: Wed, 19 Jun 2019 09:05:39 +0200
Labels: controller-revision-hash=my-cluster-mdb-cs-single-
84bcfc86b8
mariadb=my-cluster
pm.mariadb=my-cluster
statefulset.kubernetes.io/pod-name=my-cluster-mdb-cs-single-0
um.mariadb=my-cluster
Annotations: <none>
Status: Pending
IP: xxx.17.0.17
Controlled By: StatefulSet/my-cluster-mdb-cs-single
Init Containers:
init-columnstore:
Container ID:
Image: mariadb/columnstore:1.2.3
Image ID:
Port: <none>
Host Port: <none>
Command:
bash
/mnt/config-template/init-configurations.sh
columnstore
State: Waiting
Reason: ErrImagePull
Ready: False
Restart Count: 0
Environment:
BACKUP_RESTORE_FROM:
CLUSTER_TOPOLOGY: columnstore-standalone
Mounts:
/docker-entrypoint-initdb.d from mariadb-entrypoint-vol (rw)
/mnt/config-map from mariadb-config-vol (rw)
/mnt/config-template from mariadb-configtemplate-vol (rw)
/mnt/secrets from mariadb-secrets-vol (ro)
/var/run/secrets/kubernetes.io/serviceaccount from default-token-cv2g5
(ro)
init-volume:
Container ID:
Image: mariadb/columnstore:1.2.3
Image ID:
Port: <none>
Host Port: <none>
Command:
bash
-c
set -e; if [ ! -d "/mnt/columnstore/etc" ]; then rm -rf
/mnt/columnstore/data && cp -rp /usr/local/mariadb/columnstore/data
/mnt/columnstore/ && rm -rf /mnt/columnstore/local && cp -rp
/usr/local/mariadb/columnstore/local /mnt/columnstore/ && rm -rf
/mnt/columnstore/mysql && mkdir -p /mnt/columnstore/mysql && chown
mysql:mysql /mnt/columnstore/mysql && cp -rp
/usr/local/mariadb/columnstore/mysql/db /mnt/columnstore/mysql/ &&cp -rp
/usr/local/mariadb/columnstore/etc /mnt/columnstore/; fi
State: Waiting
Reason: PodInitializing
Ready: False
Restart Count: 0
Environment: <none>
Mounts:
/mnt/columnstore from data (rw)
/var/run/secrets/kubernetes.io/serviceaccount from default-token-cv2g5
(ro)
Containers:
columnstore-module-pm:
Container ID:
Image: mariadb/columnstore:1.2.3
Image ID:
Port: 3306/TCP
Host Port: 0/TCP
Command:
bash
/mnt/config-map/start-mariadb-instance.sh
State: Waiting
Reason: PodInitializing
Ready: False
Restart Count: 0
Environment:
MYSQL_ALLOW_EMPTY_PASSWORD: Y
CLUSTER_TOPOLOGY: columnstore-standalone
Mounts:
/docker-entrypoint-initdb.d from mariadb-entrypoint-vol (rw)
/mnt/config-map from mariadb-config-vol (rw)
/tmp/data from temp-data (rw)
/usr/local/mariadb/columnstore/data from data (rw,path="data")
/usr/local/mariadb/columnstore/data1 from data (rw,path="data1")
/usr/local/mariadb/columnstore/data2 from data (rw,path="data2")
/usr/local/mariadb/columnstore/data3 from data (rw,path="data3")
/usr/local/mariadb/columnstore/etc from data (rw,path="etc")
/usr/local/mariadb/columnstore/local from data (rw,path="local")
/usr/local/mariadb/columnstore/mysql/db from data (rw,path="mysql/db")
/var/run/secrets/kubernetes.io/serviceaccount from default-token-cv2g5 (ro)
Conditions:
Type Status
Initialized False
Ready False
ContainersReady False
PodScheduled True
Volumes:
data:
Type: PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
ClaimName: data-my-cluster-mdb-cs-single-0
ReadOnly: false
temp-data:
Type: PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
ClaimName: temp-data-my-cluster-mdb-cs-single-0
ReadOnly: false
mariadb-entrypoint-vol:
Type: EmptyDir (a temporary directory that shares a pod's lifetime)
Medium:
SizeLimit: <unset>
mariadb-config-vol:
Type: EmptyDir (a temporary directory that shares a pod's lifetime)
Medium:
SizeLimit: <unset>
mariadb-configtemplate-vol:
Type: ConfigMap (a volume populated by a ConfigMap)
Name: my-cluster-mariadb-config
Optional: false
mariadb-secrets-vol:
Type: Secret (a volume populated by a Secret)
SecretName: my-cluster-mariadb-secret
Optional: false
default-token-cv2g5:
Type: Secret (a volume populated by a Secret)
SecretName: default-token-cv2g5
Optional: false
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations: node.kubernetes.io/not-ready:NoExecute for 300s
node.kubernetes.io/unreachable:NoExecute for 300s
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 65s default-scheduler Successfully
assigned default/my-cluster-mdb-cs-single-0 to minikube
Warning Failed 49s kubelet, minikube Failed to pull
image "mariadb/columnstore:1.2.3": rpc error: code = Unknown desc = Error
response from daemon: Get https://registry-1.docker.io/v2/: dial tcp: lookup
registry-1.docker.io on 10.0.2.3:53: read udp 10.0.2.15:57278->10.0.2.3:53:
i/o timeout
Normal Pulling 35s (x2 over 65s) kubelet, minikube Pulling image
"mariadb/columnstore:1.2.3"
Warning Failed 25s (x2 over 49s) kubelet, minikube Error:
ErrImagePull
Warning Failed 25s kubelet, minikube Failed to pull
image "mariadb/columnstore:1.2.3": rpc error: code = Unknown desc = Error
response from daemon: Get https://registry-1.docker.io/v2/: dial tcp: lookup
registry-1.docker.io on 10.0.2.3:53: read udp 10.0.2.15:34499->10.0.2.3:53:
i/o timeout
Normal BackOff 15s (x2 over 48s) kubelet, minikube Back-off pulling
image "mariadb/columnstore:1.2.3"
Warning Failed 15s (x2 over 48s) kubelet, minikube Error:
ImagePullBackOff
Anyone know why I get this error and if there is a way to solve it?
The problem was that I needed to have Docker installed on Windows. This was not possible when running minikube on VirtualBox. I had to reinstall minikube on Hyper-V, install Docker for Desktop, and then I could install MariaDB ColumnStore.