English | 中文
RadonDB ClickHouse is an open-source, cloud-native, highly availability cluster solutions based on ClickHouse. It provides features such as high availability, PB storage, real-time analytical, architectural stability and scalability.
This tutorial demonstrates how to deploy ClickHouse Operator and a ClickHouse Cluster on KubeSphere.
- You have created a KubeSphere Cluster.
- You need to enable the OpenPitrix system in KubeSphere.
- You need to Create Workspaces, Projects, Accounts and Roles in KubeSphere.
- You need to enable the gateway in your project to provide external access.
Log in to the KubeSphere Web console as admin
, and use Kubectl from the Toolbox in the bottom-right corner to run the following command to install ClickHouse Operator. It is recommended that you have at least two worker nodes available in your cluster.
kubectl apply -f https://raw.githubusercontent.com/radondb/radondb-clickhouse-kubernetes/master/clickhouse-operator-install.yml
Notice
This command will install ClickHouse Operator in the namespace
kube-system
. Therefore, ClickHouse Operator only needs to be installed once in a KubeSphere cluster.
customresourcedefinition.apiextensions.k8s.io/clickhouseinstallations.clickhouse.altinity.com configured
customresourcedefinition.apiextensions.k8s.io/clickhouseinstallationtemplates.clickhouse.altinity.com created
customresourcedefinition.apiextensions.k8s.io/clickhouseoperatorconfigurations.clickhouse.altinity.com created
serviceaccount/clickhouse-operator created
clusterrolebinding.rbac.authorization.k8s.io/clickhouse-operator-kube-system created
configmap/etc-clickhouse-operator-files created
configmap/etc-clickhouse-operator-confd-files created
configmap/etc-clickhouse-operator-configd-files created
configmap/etc-clickhouse-operator-templatesd-files created
configmap/etc-clickhouse-operator-usersd-files created
deployment.apps/clickhouse-operator created
service/clickhouse-operator-metrics created
-
Log out of KubeSphere and log back in as
ws-admin
. Indemo-workspace
, go to App Repositories under App Management, and then click Add. -
In the dialog that appears, enter
clickhouse
for the app repository name andhttps://radondb.github.io/radondb-clickhouse-kubernetes/
for the repository URL. Click Validate to verify the URL and you will see a green check mark next to the URL if it is available. Click OK to continue. -
Your repository displays in the list after successfully imported to KubeSphere.
-
Log out of KubeSphere and log back in as
project-regular
. Indemo-project
, go to Apps under Application Workloads and click Deploy New App. -
In the dialog that appears, select From App Templates.
-
On the new page that appears, select clickhouse from the drop-down list and then click clickhouse-cluster.
-
On the Chart Files tab, you can view the configuration and download the
values.yaml
file. Click Deploy to continue. -
On the Basic Information page, confirm the app name, app version, and deployment location. Click Next to continue.
-
On the App Configurations tab, you can change the YAML file to customize configurations. In this tutorial, click Deploy to use the default configurations.
-
After a while, you can see the app status shown as Running.
-
In Workloads under Application Workloads, click the StatefulSets tab and you can see the StatefulSets are up and running.
-
Click a single StatefulSet to go to its detail page. You can see the metrics in line charts over a period of time under the Monitoring tab.
-
In Pods under Application Workloads, you can see all the Pods are up and running.
-
In Volumes under Storage, you can see the ClickHouse Cluster components are using persistent volumes.
-
Volume usage is also monitored. Click a volume item to go to its detail page. Here is an example of one of the data nodes.
-
On the Overview page of the project, you can see a list of resource usage in the current project.
-
Log out of KubeSphere and log back in as
admin
. Hover your cursor over the hammer icon in the bottom-right corner and then select Kubectl. -
In the window that appears, run the following command and then navigate to the username and password of the ClickHouse cluster.
kubectl edit chi clickho-749j8s -n demo-project
Notice
In the above command,
clickho-749j8s
is the ClickHouse application name anddemo-project
is the project name. Make sure you use your own application name and project name. -
Run the following command to access the ClickHouse cluster, and then you can use command like
show databases
to interact with it.kubectl exec -it chi-clickho-749j8s-all-nodes-0-0-0 -n demo-project -- clickhouse-client --user=clickhouse --password=c1ickh0use0perator
Notice
In the above command,
chi-clickho-749j8s-all-nodes-0-0-0
is the Pod name and you can find it in Pods under Application Workloads. Make sure you use your own Pod name, project name, username and password.