Deploy StarRocks with Helm
Helm is a package manager for Kubernetes. A Helm Chart is a Helm package and contains all of the resource definitions necessary to run an application on a Kubernetes cluster. This topic describes how to use Helm to automatically deploy a StarRocks cluster on a Kubernetes cluster.
Before you begin
Procedure
-
Add the Helm Chart Repo for StarRocks. The Helm Chart contains the definitions of the StarRocks Operator and the custom resource StarRocksCluster.
-
Add the Helm Chart Repo.
helm repo add starrocks https://starrocks.github.io/starrocks-kubernetes-operator
-
Update the Helm Chart Repo to the latest version.
helm repo update
-
View the Helm Chart Repo that you added.
$ helm search repo starrocks
NAME CHART VERSION APP VERSION DESCRIPTION
starrocks/kube-starrocks 1.8.0 3.1-latest kube-starrocks includes two subcharts, starrock...
starrocks/operator 1.8.0 1.8.0 A Helm chart for StarRocks operator
starrocks/starrocks 1.8.0 3.1-latest A Helm chart for StarRocks cluster
-
-
Use the default values.yaml of the Helm Chart to deploy the StarRocks Operator and StarRocks cluster, or create a YAML file to customize your deployment configurations.
-
Deployment with default configurations
Run the following command to deploy the StarRocks Operator and the StarRocks cluster which consists of one FE and one BE:
Tip
The default
values.yaml
is configured to deploy:- The operator pod with 1/2CPU and 0.8GB RAM
- One FE with 4GB RAM, 4 cores, and 15Gi disk
- One BE with 4GB RAM, 4 cores, and 1Ti disk
If you do not have these resources available in your Kubernetes cluster then skip to the Deployment with custom configurations section and adjust the resources.
$ helm install starrocks starrocks/kube-starrocks
# If the following result is returned, the StarRocks Operator and StarRocks cluster are being deployed.
NAME: starrocks
LAST DEPLOYED: Tue Aug 15 15:12:00 2023
NAMESPACE: starrocks
STATUS: deployed
REVISION: 1
TEST SUITE: None -
-
Deployment with custom configurations
-
Create a YAML file, for example, my-values.yaml, and customize the configurations for the StarRocks Operator and StarRocks cluster in the YAML file. For the supported parameters and descriptions, see the comments in the default values.yaml of the Helm Chart.
-
Run the following command to deploy the StarRocks Operator and StarRocks cluster with the custom configurations in my-values.yaml.
helm install -f my-values.yaml starrocks starrocks/kube-starrocks
Deployment takes a while. During this period, you can check the deployment status with:
kubectl --namespace default get starrockscluster -l "cluster=kube-starrocks"
If the following result is returned, the deployment has been successfully completed.
NAME PHASE FESTATUS BESTATUS CNSTATUS FEPROXYSTATUS
kube-starrocks running running runningYou can also run
kubectl get pods
to check the deployment status. If all Pods are in theRunning
state and all containers within the Pods areREADY
, the deployment has been successfully completed.kubectl get pods
NAME READY STATUS RESTARTS AGE
kube-starrocks-be-0 1/1 Running 0 2m50s
kube-starrocks-fe-0 1/1 Running 0 4m31s
kube-starrocks-operator-69c5c64595-pc7fv 1/1 Running 0 4m50s -
Next steps
-
Access StarRocks cluster
You can access the StarRocks cluster from inside and outside the Kubernetes cluster. For detailed instructions, see Access StarRocks Cluster.
-
Manage StarRocks operator and StarRocks cluster
-
If you need to update the configurations of the StarRocks operator and StarRocks cluster, see Helm Upgrade.
-
If you need to uninstall the StarRocks Operator and StarRocks cluster, run the following command:
helm uninstall starrocks
-
More information
-
The address of the GitHub repository: starrocks-kubernetes-operator and kube-starrocks Helm Chart.
-
The docs in the GitHub repository provide more information, for example:
-
If you need to manage objects like the StarRocks cluster via the Kubernetes API, see API reference.
-
If you need to mount persistent volumes to FE and BE pods to store FE metadata and logs, as well as BE data and logs, see Mount Persistent Volumes by Helm Chart.
dangerIf persistent volumes are not mounted, the StarRocks Operator will use emptyDir to store FE metadata and logs, as well as BE data and logs. When containers restart, data will be lost.
-
If you need to set the root user password:
-
Manually set the root user's password after deploying the StarRocks cluster, see Change root user password HOWTO.
-
Automatically set the root user's password when deploying the StarRocks cluster, see Initialize root user password.
-
-
-
How to resolve the following error that occurs after a CREATE TABLE statement is executed in a StarRocks shared-data cluster.
-
Error message
ERROR 1064 (HY000): Table replication num should be less than or equal to the number of available BE nodes. You can change this default by setting the replication_num table properties. Current alive backend is [10001]. , table=orders1, default_replication_num=3
-
Solution
This may be because only one BE exists in that StarRocks shared-data cluster, which supports only one replica. However, the default number of replicas is 3. You can modify the number of replicas to 1 in PROPERTIES, such as,
PROPERTIES( "replication_num" = "1" )
.
-
-
The address of Helm Chart maintained by StarRocks on Artifact Hub: kube-starrocks.