docs/en/ecosystem_release/starrocks-kubernetes-operator.md
The Operator provided by StarRocks is used to deploy StarRocks clusters in the Kubernetes environment. The StarRocks cluster components include FE, BE, and CN.
User guide: You can use the following methods to deploy StarRocks clusters on Kubernetes:
Source codes:
starrocks-kubernetes-operator and kube-starrocks Helm Chart
Download URL of the resources:
URL prefix
https://github.com/StarRocks/starrocks-kubernetes-operator/releases/download/v${operator_version}/${resource_name}
Resource name
starrocks.com_starrocksclusters.yamloperator.yamlkube-starrocks Chart kube-starrocks-${chart_version}.tgz. The kube-starrocks Chart is divided into two subcharts: starrocks Chart starrocks-${chart_version}.tgz and operator Chart operator-${chart_version}.tgz.For example, the download URL for kube-starrocks chart v1.8.6 is:
https://github.com/StarRocks/starrocks-kubernetes-operator/releases/download/v1.8.6/kube-starrocks-1.8.6.tgz
Version requirements
Improvements
logStorageSize is set to 0. #398mountPath and name in storageVolumes are duplicated. An error is returned when duplicate values exist. #388feEnvVars, beEnvVars and cnEnvVars fields in multiple values YAML files can be merged. #396spec.containers.securityContext.capabilities in the StarRocksCluster CRD to customize the Linux capabilities of containers. #404Bug Fixes
Fixed the following issues:
annotations field in service can be updated. #402 #399New features
Enhancements
status.reason field in StarRocksCluster CRD. When the apply operation of a subcontroller fails during cluster deployment, you can execute kubectl get starrockscluster <name_of_the_starrocks_cluster_object> -oyaml, and view error logs shown in status.reason field in the returned result. #359storageVolumes field. #324Bug Fixes
Fixed the following issues:
autoScalingPolicy is deleted. #379starRocksCnSpec is deleted. #357Bugfixes
StarRocksFeSpec.service, StarRocksBeSpec.service, and StarRocksCnSpec.service. #370Enhancements
livenessProbeFailureSeconds and readinessProbeFailureSeconds fields in StarRocksCluster CRD. When StarRocks is under heavy workload and the time of liveness and readiness probes still use default values, the liveness and readiness probes may fail and cause the containers to restart. In this case, you can add larger values to these two fields. #309Bug Fixes
Fixed the following issue:
sendfile() failed (32: Broken pipe) while sending request to upstream is returned during a Stream Load job. After Nginx sends the request body to FE, the FE then redirects the request to the BE. At this point, the data cached in Nginx may already be lost. #303Doc
Improvements
annotations and labels can be customized for the service account of the operator: The Operator creates a service account named starrocks by default, and users can customize the annotations and labels for the service account starrocks of the operator by specifying the annotations and labels fields in serviceAccount in values.yaml. The operator.global.rbac.serviceAccountName field is deprecated. #291appProtocol field. This improvement is particularly important because the MySQL protocol is a server-first protocol that is incompatible with automatic protocol detection and sometimes may incur connection failures. #288Bug Fixes
Fixed the following issue:
starrocks.initPassword.enabled is true and the value of starrocks.starrocksCluster.name is specified. It is caused by the wrong FE service domain name used by the initpwd pod to connect FE service. More specifically, in this scenario, FE service domain name uses the value specified in starrocks.starrocksCluster.name, while the initpwd pod still uses the value of the starrocks.nameOverride field to form the FE service domain name. (#292)Upgrade notes
starrocks.starrocksCluster.name is different from the value of starrocks.nameOverride, the old configmaps for FE, BE, and CN will be deleted. New configmaps with new names for the FE, BE, and CN will be created. This may result in the restart of the FE, BE, and CN pods.Features
storagespec and more fields in starrocksCnSpec in values.yaml to configure the log volume for CN nodes in a StarRocks Cluster. #280terminationGracePeriodSeconds in the StarRocksCluster CRD to configure how long to wait before forcefully terminating a pod when a StarRocksCluster resource is being deleted or updated. #283startupProbeFailureSeconds field in the StarRocksCluster CRD to configure the startup probe failure threshold for the pods in the StarRocksCluster resource. #271Bug Fixes
Fixed the following issue:
Doc
Upgrade notes
JAVA_OPTS_FOR_JDK_11 to the default fe.conf file. When the default fe.conf file is used and the helm chart is upgraded to v1.8.3, FE pods may restart. #257Features
watchNamespace field to specify the one and only namespace that the operator needs to watch. Otherwise, the operator watches all namespaces in the Kubernetes cluster. In most cases, you do not need to use this feature. You can use this feature when the Kubernetes cluster manages too many nodes, the operator watches all namespaces and consumes too many memory resources. #261Ports field in starrocksFeProxySpec in the values.yaml file to allow users to specify the NodePort of FE Proxy service. #258Improvements
proxy_read_timeout parameter is changed in the nginx.conf file to 600s from 60s, in order to avoid timeout.Improvements
Features
ports field in the StarRocks cluster CRD to allow users to customize the ports of the services. #244Improvements
BeSpec or CnSpec of the StarRocks cluster is deleted, ensuring a clean and consistent state of the cluster. #245Upgrade notes and behavior changes
[Operator] To upgrade the StarRocksCluster CRD and operator you need to manually apply the new StarRocksCluster CRD starrocks.com_starrocksclusters.yaml and operator.yaml.
[Helm Chart]
To upgrade the Helm Chart, you need to perform the following:
Use the values migration tool to adjust the format of the previous values.yaml file to the new format. The values migration tool for different operating systems can be downloaded from the Assets section. You can get help information of this tool by running the migrate-chart-value --help command. #206
migrate-chart-value --input values.yaml --target-version v1.8.0 --output ./values-v1.8.0.yaml
Update the Helm Chart repo.
helm repo update
Execute the helm upgrade command to apply the adjusted values.yaml file to the StarRocks helm chart kube-starrocks.
helm upgrade <release-name> starrocks/kube-starrocks -f values-v1.8.0.yaml
Two subcharts, operator and starrocks, are added into the kube-starrocks helm chart. You can choose to install StarRocks operator or StarRocks cluster respectively by specifying the corresponding subchart. This way, you can manage StarRocks clusters more flexibly, such as deploying one StarRocks operator and multiple StarRocks clusters.
Features
starrocks Helm subchart. #199helm install command. Note that, the helm upgrade command does not support this feature.Improvements