Releases of Kubernetes Operator for StarRocks
Notifications
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:
- Directly use StarRocks CRD to deploy StarRocks clusters
- Deploying both the Operator and StarRocks clusters by using the Helm Chart
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
- StarRocksCluster CRD:
starrocks.com_starrocksclusters.yaml - Default configuration file for StarRocks Operator:
operator.yaml - Helm Chart, including
kube-starrocksChartkube-starrocks-${chart_version}.tgz. Thekube-starrocksChart is divided into two subcharts:starrocksChartstarrocks-${chart_version}.tgzandoperatorChartoperator-${chart_version}.tgz.
- StarRocksCluster CRD:
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
- Kubernetes: 1.18 or later
- Go: 1.19 or later
Release notes
1.9
1.9.1
Improvements
- [Helm Chart] The operator will not create PersistentVolumeClaim (PVC) for log storage when
logStorageSizeis set to0. #398 - [Operator] The operator can detect whether the values of
mountPathandnameinstorageVolumesare duplicated. An error is returned when duplicate values exist. #388 - [Operator] The number of FE nodes cannot be scaled down to 1. #394
- [Operator] The values of the
feEnvVars,beEnvVarsandcnEnvVarsfields in multiple values YAML files can be merged. #396 - [Operator] Add
spec.containers.securityContext.capabilitiesin the StarRocksCluster CRD to customize the Linux capabilities of containers. #404
Bug Fixes
Fixed the following issues:
- [Operator] The
annotationsfield inservicecan be updated. #402 #399 - [Operator] The modification of statefulset and deployment is patched instead of updated. It solves the problem that upgrading CN will cause all CN pods to be terminated and restarted when CN and HPA are enabled. #397
- [Operator] The modification of service object is patched instead of updated. It prevents the operator from overwriting the modification, for example, when a Kubernetes Cloud provider is used and the service object is modified by that Kubernetes Cloud provider. #387
1.9.0
New features
- Add StarRocksWarehouse CRD to support StarRocks Warehouse. Note that StarRocks Warehouse is currently a feature of the StarRocks Enterprise Edition. #323
Enhancements
- Add the
status.reasonfield in StarRocksCluster CRD. When the apply operation of a subcontroller fails during cluster deployment, you can executekubectl get starrockscluster <name_of_the_starrocks_cluster_object> -oyaml, and view error logs shown instatus.reasonfield in the returned result. #359 - An empty directory can be mounted in the
storageVolumesfield. #324
Bug Fixes
Fixed the following issues:
- The status of the StarRocks cluster was inconsistent with the status of the cluster's FE, BE and CN components. #380
- The HPA resource is not deleted when
autoScalingPolicyis deleted. #379 - The HPA resource is not removed when
starRocksCnSpecis deleted. #357
1.8
1.8.8
Bugfixes
- [Operator] The operator no longer annotates on search service (which is an internal service) when annotations are added by using
StarRocksFeSpec.service,StarRocksBeSpec.service, andStarRocksCnSpec.service. #370
1.8.7
Enhancements
- Add the
livenessProbeFailureSecondsandreadinessProbeFailureSecondsfields 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. #309
1.8.6
Bug Fixes
Fixed the following issue:
- An error
sendfile() failed (32: Broken pipe) while sending request to upstreamis 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. #303
Doc
- Load data from outside the Kubernetes network to StarRocks through FE proxy
- Update the root user's password using Helm
1.8.5
Improvements
- [Helm Chart] The
annotationsandlabelscan be customized for the service account of the operator: The Operator creates a service account namedstarrocksby default, and users can customize the annotations and labels for the service accountstarrocksof the operator by specifying theannotationsandlabelsfields inserviceAccountin values.yaml. Theoperator.global.rbac.serviceAccountNamefield is deprecated. #291 - [Operator] FE service supports explicit protocol selection for Istio: When Istio is installed in the Kubernetes environment, Istio needs to determine the protocol of the traffic from the StarRocks cluster, in order to provide additional functionality such as routing and rich metrics. So FE service explicitly defines its protocol as MySQL in the
appProtocolfield. 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. #288
Bug Fixes
Fixed the following issue:
- [Helm Chart] The root user's password in StarRocks may not be initialized successfully when
starrocks.initPassword.enabledis true and the value ofstarrocks.starrocksCluster.nameis 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 instarrocks.starrocksCluster.name, while the initpwd pod still uses the value of thestarrocks.nameOverridefield to form the FE service domain name. (#292)
Upgrade notes
- [Helm Chart] When the value specified in
starrocks.starrocksCluster.nameis different from the value ofstarrocks.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.
1.8.4
Features
- [Helm Chart] The metrics of StarRocks clusters can be monitored by using the Prometheus and ServiceMonitor CR. For the user guide, see Integration with Prometheus and Grafana. #284
- [Helm Chart] Add the
storagespecand more fields instarrocksCnSpecin values.yaml to configure the log volume for CN nodes in a StarRocks Cluster. #280 - Add the
terminationGracePeriodSecondsin the StarRocksCluster CRD to configure how long to wait before forcefully terminating a pod when a StarRocksCluster resource is being deleted or updated. #283 - Add the
startupProbeFailureSecondsfield in the StarRocksCluster CRD to configure the startup probe failure threshold for the pods in the StarRocksCluster resource. #271
Bug Fixes
Fixed the following issue:
- The FE Proxy cannot handle STREAM LOAD requests correctly when multiple FE pods exist in the StarRocks cluster. #269
Doc
- Add a quick start on how to deploy a local StarRocks cluster.
- Add more user guides on how to deploy a StarRocks cluster with different configurations. For example, how to deploy a StarRocks cluster with all supported features. For more user guides, see docs.
- Add more user guides on how to manage the StarRocks cluster. For example, how to configure logging and related fields and mount external configmaps or secrets. For more user guides, see docs.
1.8.3
Upgrade notes
- [Helm Chart] Add
JAVA_OPTS_FOR_JDK_11to 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. #257
Features
- [Helm Chart] Add the
watchNamespacefield 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. #261 - [Helm Chart] Add the
Portsfield instarrocksFeProxySpecin the values.yaml file to allow users to specify the NodePort of FE Proxy service. #258
Improvements
- The value of the
proxy_read_timeoutparameter is changed in the nginx.conf file to 600s from 60s, in order to avoid timeout.
1.8.2
Improvements
- Increase the maximum memory usage allowed for the operator pods to avoid OOM. #254
1.8.1
Features
- Support using the subpath field in the configMaps and secrets, allowing users to mount specific files or directories from these resources. #249
- Add the
portsfield in the StarRocks cluster CRD to allow users to customize the ports of the services. #244
Improvements
- Remove the related Kubernetes resources when the
BeSpecorCnSpecof the StarRocks cluster is deleted, ensuring a clean and consistent state of the cluster. #245
1.8.0
Upgrade 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 --helpcommand. #206migrate-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 upgradecommand 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
- [Helm Chart] Multiple StarRocks clusters in a Kubernetes cluster. Support deploying multiple StarRocks clusters in different namespaces in a Kubernetes cluster by installing the
starrocksHelm subchart. #199 - [Helm Chart] Support to configure the initial password of StarRocks cluster's root users when executing the
helm installcommand. Note that, thehelm upgradecommand does not support this feature. - [Helm Chart] Integration with Datadog: Integrated with Datadog to collect StarRocks clusters' metrics and logs. To enable this feature, you need to configure the Datadog related fields in the values.yaml file. For the detailed user guide, see Integration with Datadog. #197 #208
- [Operator] Run pods as a non-root user. Add the runAsNonRoot field to allow pods to run as non-root users, which can enhance security. #195
- [Operator] FE proxy. Add the FE proxy to allow external clients and data load tools that support Stream Load protocol to access StarRocks clusters in Kubernetes. This way, you can use the load job based on Stream Load to load data into StarRocks clusters in Kubernetes. #211
Improvements