From 9e07deb63fc66c878991bb9515b97995e07682fa Mon Sep 17 00:00:00 2001 From: Shanshan Date: Thu, 23 Jan 2025 14:14:53 +0800 Subject: [PATCH] chore: update pdbx examples and cmpd (#1433) --- .../polardbx/templates/_helpers.tpl | 52 +++-------- .../polardbx/templates/cluster.yaml | 6 +- addons-cluster/polardbx/values.yaml | 2 +- .../dashboards/polardbx-overview.json | 90 +++++++++---------- addons/polardbx/scripts/metadb-setup.tpl | 3 +- addons/polardbx/templates/cmpd-cdc.yaml | 2 +- addons/polardbx/templates/cmpd-cn.yaml | 11 ++- addons/polardbx/templates/cmpd-dn.yaml | 3 +- addons/polardbx/templates/cmpd-gms.yaml | 7 +- examples/polardbx/README.md | 70 +++++++++++++-- .../cluster-with-schedule-policy.yaml | 16 ++-- examples/polardbx/cluster.yaml | 54 ++++------- examples/polardbx/pod-monitor.yaml | 29 ++++++ examples/polardbx/restart.yaml | 2 +- examples/polardbx/scale-in.yaml | 2 +- examples/polardbx/scale-out.yaml | 2 +- examples/polardbx/start.yaml | 2 +- examples/polardbx/stop.yaml | 2 +- examples/polardbx/verticalscale.yaml | 2 +- examples/polardbx/volumeexpand.yaml | 2 +- 20 files changed, 202 insertions(+), 157 deletions(-) create mode 100644 examples/polardbx/pod-monitor.yaml diff --git a/addons-cluster/polardbx/templates/_helpers.tpl b/addons-cluster/polardbx/templates/_helpers.tpl index 2c713a9e4..d22edd1f3 100644 --- a/addons-cluster/polardbx/templates/_helpers.tpl +++ b/addons-cluster/polardbx/templates/_helpers.tpl @@ -1,51 +1,21 @@ {{/* Expand the name of the chart. */}} -{{- define "polardbx.name" -}} -{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} -{{- end }} {{/* -Create a default fully qualified app name. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -If release name contains chart name it will be used as a full name. +Define the cluster name. +We truncate at 15 chars because KubeBlocks will concatenate the names of other resources with cluster name */}} -{{- define "polardbx.fullname" -}} -{{- if .Values.fullnameOverride }} -{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} -{{- else }} -{{- $name := default .Chart.Name .Values.nameOverride }} -{{- if contains $name .Release.Name }} -{{- .Release.Name | trunc 63 | trimSuffix "-" }} -{{- else }} -{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} +{{- define "polardbx-cluster.name" -}} +{{- $name := default .Release.Name .Values.clusterName }} +{{- if not (regexMatch "^[a-z]([-a-z0-9]*[a-z0-9])?$" $name) }} +{{ fail (printf "Release name %q is invalid. It must match the regex %q." $name "^[a-z]([-a-z0-9]*[a-z0-9])?$") }} {{- end }} +{{- if gt (len $name) 16 }} +{{ fail (printf "Release name %q is invalid, must be no more than 6 characters" $name) }} {{- end }} +{{- if gt (add (len $name) (len .Release.Namespace)) 18 }} +{{ fail (printf "Combined length of release name %q and namespace %q must be no more than 18 characters" $name .Release.Namespace) }} {{- end }} - -{{/* -Create chart name and version as used by the chart label. -*/}} -{{- define "polardbx.chart" -}} -{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} -{{- end }} - -{{/* -Common labels -*/}} -{{- define "polardbx.labels" -}} -helm.sh/chart: {{ include "polardbx.chart" . }} -{{ include "polardbx.selectorLabels" . }} -{{- if .Chart.AppVersion }} -app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} -{{- end }} -app.kubernetes.io/managed-by: {{ .Release.Service }} -{{- end }} - -{{/* -Selector labels -*/}} -{{- define "polardbx.selectorLabels" -}} -app.kubernetes.io/name: {{ include "polardbx.name" . }} -app.kubernetes.io/instance: {{ .Release.Name }} +{{- $name }} {{- end }} diff --git a/addons-cluster/polardbx/templates/cluster.yaml b/addons-cluster/polardbx/templates/cluster.yaml index 2772aae8a..6f4f5b48c 100644 --- a/addons-cluster/polardbx/templates/cluster.yaml +++ b/addons-cluster/polardbx/templates/cluster.yaml @@ -1,10 +1,10 @@ apiVersion: apps.kubeblocks.io/v1 kind: Cluster metadata: - name: {{ include "polardbx.name" . }} + name: {{ include "polardbx-cluster.name" . }} namespace: {{ .Release.Namespace }} labels: - {{ include "polardbx.labels" . | nindent 4 }} + {{ include "kblib.clusterLabels" . | nindent 4 }} spec: terminationPolicy: {{ .Values.extra.terminationPolicy }} componentSpecs: @@ -28,6 +28,7 @@ spec: volumeClaimTemplates: - name: data spec: + storageClassName: {{ .Values.gms.persistence.data.storageClass | quote }} accessModes: - ReadWriteOnce resources: @@ -56,6 +57,7 @@ spec: volumeClaimTemplates: - name: data spec: + storageClassName: {{ .persistence.data.storageClass | quote }} accessModes: - ReadWriteOnce resources: diff --git a/addons-cluster/polardbx/values.yaml b/addons-cluster/polardbx/values.yaml index d3557ee41..37962b3a5 100644 --- a/addons-cluster/polardbx/values.yaml +++ b/addons-cluster/polardbx/values.yaml @@ -1,5 +1,5 @@ ## cluster settings for polardbx cluster -nameOverride: pxc +clusterName: pxc gms: ## @param gms.replicas data replicas of gms instance diff --git a/addons/polardbx/dashboards/polardbx-overview.json b/addons/polardbx/dashboards/polardbx-overview.json index fac3adf80..2ffdcd37e 100644 --- a/addons/polardbx/dashboards/polardbx-overview.json +++ b/addons/polardbx/dashboards/polardbx-overview.json @@ -843,7 +843,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "sum by (app_kubernetes_io_instance, pod, app_kubernetes_io_component, apps_kubeblocks_io_component_name) (mysql_up{app_kubernetes_io_instance=\"$polardbx\", namespace=\"$namespace\", app_kubernetes_io_component=\"gms\"})\nor\nsum by (app_kubernetes_io_instance, pod, app_kubernetes_io_component, apps_kubeblocks_io_component_name) (polardbx_up{app_kubernetes_io_instance=\"$polardbx\", namespace=\"$namespace\"})\nor \nsum by (app_kubernetes_io_instance, pod, app_kubernetes_io_component, apps_kubeblocks_io_component_name) (mysql_up{app_kubernetes_io_instance=\"$polardbx\", namespace=\"$namespace\", app_kubernetes_io_component=\"dn\"})\nor \nsum by (app_kubernetes_io_instance, pod, app_kubernetes_io_component, apps_kubeblocks_io_component_name) (polardbx_cdc_up{app_kubernetes_io_instance=\"$polardbx\", namespace=\"$namespace\"})\n", + "expr": "sum by (app_kubernetes_io_instance, pod, apps_kubeblocks_io_component_name, apps_kubeblocks_io_component_name) (mysql_up{app_kubernetes_io_instance=\"$polardbx\", namespace=\"$namespace\", apps_kubeblocks_io_component_name=\"gms\"})\nor\nsum by (app_kubernetes_io_instance, pod, apps_kubeblocks_io_component_name, apps_kubeblocks_io_component_name) (polardbx_up{app_kubernetes_io_instance=\"$polardbx\", namespace=\"$namespace\"})\nor \nsum by (app_kubernetes_io_instance, pod, apps_kubeblocks_io_component_name, apps_kubeblocks_io_component_name) (mysql_up{app_kubernetes_io_instance=\"$polardbx\", namespace=\"$namespace\", apps_kubeblocks_io_component_name=~\"dn-.*\"})\nor \nsum by (app_kubernetes_io_instance, pod, apps_kubeblocks_io_component_name, apps_kubeblocks_io_component_name) (polardbx_cdc_up{app_kubernetes_io_instance=\"$polardbx\", namespace=\"$namespace\"})\n", "format": "table", "hide": false, "instant": true, @@ -881,7 +881,7 @@ "indexByName": { "Time": 2, "Value": 5, - "app_kubernetes_io_component": 1, + "apps_kubeblocks_io_component_name": 1, "app_kubernetes_io_instance": 0, "apps_kubeblocks_io_component_name": 3, "pod": 4 @@ -895,7 +895,7 @@ "Value #G": "MEM %", "Value #H": "Network (Recv)", "Value #I": "Network (Sent)", - "app_kubernetes_io_component": "role", + "apps_kubeblocks_io_component_name": "role", "app_kubernetes_io_instance": "instance", "apps_kubeblocks_io_component_name": "component_name", "node": "Host", @@ -1029,7 +1029,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "sum(rate(mysql_global_status_queries{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"gms\", namespace=\"$namespace\"}[1m]))", + "expr": "sum(rate(mysql_global_status_queries{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=\"gms\", namespace=\"$namespace\"}[1m]))", "interval": "", "legendFormat": "qps (physical)", "queryType": "randomWalk", @@ -1126,7 +1126,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "sum(mysql_global_status_threads_connected{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"gms\", namespace=\"$namespace\"})", + "expr": "sum(mysql_global_status_threads_connected{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=\"gms\", namespace=\"$namespace\"})", "interval": "", "legendFormat": "connections", "queryType": "randomWalk", @@ -1139,7 +1139,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "sum(mysql_global_status_threads_running{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"gms\", namespace=\"$namespace\"})", + "expr": "sum(mysql_global_status_threads_running{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=\"gms\", namespace=\"$namespace\"})", "hide": false, "interval": "", "legendFormat": "threads", @@ -1236,7 +1236,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "sum(mysql_global_status_innodb_buffer_pool_bytes_data{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"gms\", namespace=\"$namespace\"})", + "expr": "sum(mysql_global_status_innodb_buffer_pool_bytes_data{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=\"gms\", namespace=\"$namespace\"})", "interval": "", "legendFormat": "buffer pool size", "queryType": "randomWalk", @@ -1333,7 +1333,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "sum(mysql_global_status_innodb_buffer_pool_bytes_data{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"gms\", namespace=\"$namespace\"}) by (xstore_name)", + "expr": "sum(mysql_global_status_innodb_buffer_pool_bytes_data{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=\"gms\", namespace=\"$namespace\"}) by (xstore_name)", "interval": "", "legendFormat": "{{ xstore_name }}", "queryType": "randomWalk", @@ -1431,7 +1431,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "sum(mysql_global_status_buffer_pool_dirty_pages{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"gms\", namespace=\"$namespace\"})", + "expr": "sum(mysql_global_status_buffer_pool_dirty_pages{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=\"gms\", namespace=\"$namespace\"})", "interval": "", "legendFormat": "dirty", "queryType": "randomWalk", @@ -1444,7 +1444,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "sum(rate(mysql_global_status_buffer_pool_page_changes_total{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"gms\", namespace=\"$namespace\"}[10m]))", + "expr": "sum(rate(mysql_global_status_buffer_pool_page_changes_total{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=\"gms\", namespace=\"$namespace\"}[10m]))", "hide": false, "interval": "", "legendFormat": "flush", @@ -1542,7 +1542,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "sum(mysql_global_status_innodb_row_lock_current_waits{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"gms\", namespace=\"$namespace\"})", + "expr": "sum(mysql_global_status_innodb_row_lock_current_waits{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=\"gms\", namespace=\"$namespace\"})", "interval": "", "legendFormat": "current wait", "queryType": "randomWalk", @@ -1639,7 +1639,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "sum(rate(mysql_global_status_innodb_buffer_pool_read_requests{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"gms\", namespace=\"$namespace\"}[1m]))", + "expr": "sum(rate(mysql_global_status_innodb_buffer_pool_read_requests{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=\"gms\", namespace=\"$namespace\"}[1m]))", "interval": "", "legendFormat": "reads", "queryType": "randomWalk", @@ -1652,7 +1652,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "sum(rate(mysql_global_status_innodb_buffer_pool_write_requests{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"gms\", namespace=\"$namespace\"}[1m]))", + "expr": "sum(rate(mysql_global_status_innodb_buffer_pool_write_requests{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=\"gms\", namespace=\"$namespace\"}[1m]))", "hide": false, "interval": "", "legendFormat": "writes", @@ -1750,7 +1750,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "sum(rate(mysql_global_status_innodb_log_writes{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"gms\", namespace=\"$namespace\"}[1m]))", + "expr": "sum(rate(mysql_global_status_innodb_log_writes{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=\"gms\", namespace=\"$namespace\"}[1m]))", "interval": "", "legendFormat": "log writes", "queryType": "randomWalk", @@ -1763,7 +1763,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "sum(rate(mysql_global_status_innodb_data_reads{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"gms\", namespace=\"$namespace\"}[1m]))", + "expr": "sum(rate(mysql_global_status_innodb_data_reads{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=\"gms\", namespace=\"$namespace\"}[1m]))", "hide": false, "interval": "", "legendFormat": "data reads", @@ -1776,7 +1776,7 @@ "uid": "${datasource}" }, "exemplar": true, - "expr": "sum(rate(mysql_global_status_innodb_data_fsyncs{polardbx_name=\"$polardbx\", polardbx_role=\"dn\", xstore_role=\"leader\", namespace=\"$namespace\"}[1m]))", + "expr": "sum(rate(mysql_global_status_innodb_data_fsyncs{polardbx_name=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", kubeblocks_io_role=\"leader\", namespace=\"$namespace\"}[1m]))", "hide": false, "interval": "", "legendFormat": "data fsyncs", @@ -1788,7 +1788,7 @@ "uid": "${datasource}" }, "exemplar": true, - "expr": "sum(rate(mysql_global_status_innodb_os_log_fsyncs{polardbx_name=\"$polardbx\", polardbx_role=\"dn\", xstore_role=\"leader\", namespace=\"$namespace\"}[1m]))", + "expr": "sum(rate(mysql_global_status_innodb_os_log_fsyncs{polardbx_name=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", kubeblocks_io_role=\"leader\", namespace=\"$namespace\"}[1m]))", "hide": false, "interval": "", "legendFormat": "log fsyncs", @@ -1884,7 +1884,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "sum(rate(mysql_global_status_innodb_data_written{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"gms\", namespace=\"$namespace\"}[1m]))", + "expr": "sum(rate(mysql_global_status_innodb_data_written{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=\"gms\", namespace=\"$namespace\"}[1m]))", "interval": "", "legendFormat": "data written/s", "queryType": "randomWalk", @@ -1897,7 +1897,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "sum(rate(mysql_global_status_innodb_data_read{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"gms\", namespace=\"$namespace\"}[1m]))", + "expr": "sum(rate(mysql_global_status_innodb_data_read{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=\"gms\", namespace=\"$namespace\"}[1m]))", "hide": false, "interval": "", "legendFormat": "data read/s", @@ -1910,7 +1910,7 @@ "uid": "${datasource}" }, "exemplar": true, - "expr": "sum(rate(mysql_global_status_innodb_os_log_written{polardbx_name=\"$polardbx\", polardbx_role=\"dn\", xstore_role=\"leader\", namespace=\"$namespace\"}[1m]))", + "expr": "sum(rate(mysql_global_status_innodb_os_log_written{polardbx_name=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", kubeblocks_io_role=\"leader\", namespace=\"$namespace\"}[1m]))", "hide": false, "interval": "", "legendFormat": "log writtern/s", @@ -2006,7 +2006,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "sum(rate(mysql_global_status_bytes_received{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"gms\", namespace=\"$namespace\"}[1m]))", + "expr": "sum(rate(mysql_global_status_bytes_received{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=\"gms\", namespace=\"$namespace\"}[1m]))", "interval": "", "legendFormat": "received/s", "queryType": "randomWalk", @@ -2019,7 +2019,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "sum(rate(mysql_global_status_bytes_sent{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"gms\", namespace=\"$namespace\"}[1m]))", + "expr": "sum(rate(mysql_global_status_bytes_sent{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=\"gms\", namespace=\"$namespace\"}[1m]))", "hide": false, "interval": "", "legendFormat": "sent/s", @@ -3084,7 +3084,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "sum(rate(mysql_global_status_queries{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"dn\", namespace=\"$namespace\"}[1m]))", + "expr": "sum(rate(mysql_global_status_queries{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", namespace=\"$namespace\"}[1m]))", "interval": "", "legendFormat": "qps (physical)", "queryType": "randomWalk", @@ -3180,7 +3180,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "sum(mysql_global_status_threads_connected{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"dn\", namespace=\"$namespace\"})", + "expr": "sum(mysql_global_status_threads_connected{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", namespace=\"$namespace\"})", "interval": "", "legendFormat": "connections", "queryType": "randomWalk", @@ -3193,7 +3193,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "sum(mysql_global_status_threads_running{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"dn\", namespace=\"$namespace\"})", + "expr": "sum(mysql_global_status_threads_running{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", namespace=\"$namespace\"})", "hide": false, "interval": "", "legendFormat": "threads", @@ -3289,7 +3289,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "sum(mysql_global_status_innodb_buffer_pool_bytes_data{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"dn\", namespace=\"$namespace\"})", + "expr": "sum(mysql_global_status_innodb_buffer_pool_bytes_data{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", namespace=\"$namespace\"})", "interval": "", "legendFormat": "buffer pool size", "queryType": "randomWalk", @@ -3385,7 +3385,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "sum(mysql_global_status_innodb_buffer_pool_bytes_data{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"dn\", namespace=\"$namespace\"}) by (xstore_name)", + "expr": "sum(mysql_global_status_innodb_buffer_pool_bytes_data{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", namespace=\"$namespace\"}) by (xstore_name)", "interval": "", "legendFormat": "{{ xstore_name }}", "queryType": "randomWalk", @@ -3482,7 +3482,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "sum(mysql_global_status_buffer_pool_dirty_pages{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"dn\", namespace=\"$namespace\"})", + "expr": "sum(mysql_global_status_buffer_pool_dirty_pages{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", namespace=\"$namespace\"})", "interval": "", "legendFormat": "dirty", "queryType": "randomWalk", @@ -3495,7 +3495,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "sum(rate(mysql_global_status_buffer_pool_page_changes_total{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"dn\", namespace=\"$namespace\"}[10m]))", + "expr": "sum(rate(mysql_global_status_buffer_pool_page_changes_total{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", namespace=\"$namespace\"}[10m]))", "hide": false, "interval": "", "legendFormat": "flush", @@ -3592,7 +3592,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "sum(mysql_global_status_innodb_row_lock_current_waits{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"dn\", namespace=\"$namespace\"})", + "expr": "sum(mysql_global_status_innodb_row_lock_current_waits{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", namespace=\"$namespace\"})", "interval": "", "legendFormat": "current wait", "queryType": "randomWalk", @@ -3688,7 +3688,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "sum(rate(mysql_global_status_innodb_buffer_pool_read_requests{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"dn\", namespace=\"$namespace\"}[1m]))", + "expr": "sum(rate(mysql_global_status_innodb_buffer_pool_read_requests{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", namespace=\"$namespace\"}[1m]))", "interval": "", "legendFormat": "reads", "queryType": "randomWalk", @@ -3701,7 +3701,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "sum(rate(mysql_global_status_innodb_buffer_pool_write_requests{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"dn\", namespace=\"$namespace\"}[1m]))", + "expr": "sum(rate(mysql_global_status_innodb_buffer_pool_write_requests{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", namespace=\"$namespace\"}[1m]))", "hide": false, "interval": "", "legendFormat": "writes", @@ -3798,7 +3798,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "sum(rate(mysql_global_status_innodb_log_writes{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"dn\", namespace=\"$namespace\"}[1m]))", + "expr": "sum(rate(mysql_global_status_innodb_log_writes{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", namespace=\"$namespace\"}[1m]))", "interval": "", "legendFormat": "log writes", "queryType": "randomWalk", @@ -3811,7 +3811,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "sum(rate(mysql_global_status_innodb_data_reads{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"dn\", namespace=\"$namespace\"}[1m]))", + "expr": "sum(rate(mysql_global_status_innodb_data_reads{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", namespace=\"$namespace\"}[1m]))", "hide": false, "interval": "", "legendFormat": "data reads", @@ -3824,7 +3824,7 @@ "uid": "${datasource}" }, "exemplar": true, - "expr": "sum(rate(mysql_global_status_innodb_data_fsyncs{polardbx_name=\"$polardbx\", polardbx_role=\"dn\", xstore_role=\"leader\", namespace=\"$namespace\"}[1m]))", + "expr": "sum(rate(mysql_global_status_innodb_data_fsyncs{polardbx_name=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", kubeblocks_io_role=\"leader\", namespace=\"$namespace\"}[1m]))", "hide": false, "interval": "", "legendFormat": "data fsyncs", @@ -3836,7 +3836,7 @@ "uid": "${datasource}" }, "exemplar": true, - "expr": "sum(rate(mysql_global_status_innodb_os_log_fsyncs{polardbx_name=\"$polardbx\", polardbx_role=\"dn\", xstore_role=\"leader\", namespace=\"$namespace\"}[1m]))", + "expr": "sum(rate(mysql_global_status_innodb_os_log_fsyncs{polardbx_name=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", kubeblocks_io_role=\"leader\", namespace=\"$namespace\"}[1m]))", "hide": false, "interval": "", "legendFormat": "log fsyncs", @@ -3932,7 +3932,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "sum(rate(mysql_global_status_innodb_data_written{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"dn\", namespace=\"$namespace\"}[1m]))", + "expr": "sum(rate(mysql_global_status_innodb_data_written{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", namespace=\"$namespace\"}[1m]))", "interval": "", "legendFormat": "data written/s", "queryType": "randomWalk", @@ -3945,7 +3945,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "sum(rate(mysql_global_status_innodb_data_read{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"dn\", namespace=\"$namespace\"}[1m]))", + "expr": "sum(rate(mysql_global_status_innodb_data_read{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", namespace=\"$namespace\"}[1m]))", "hide": false, "interval": "", "legendFormat": "data read/s", @@ -3958,7 +3958,7 @@ "uid": "${datasource}" }, "exemplar": true, - "expr": "sum(rate(mysql_global_status_innodb_os_log_written{polardbx_name=\"$polardbx\", polardbx_role=\"dn\", xstore_role=\"leader\", namespace=\"$namespace\"}[1m]))", + "expr": "sum(rate(mysql_global_status_innodb_os_log_written{polardbx_name=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", kubeblocks_io_role=\"leader\", namespace=\"$namespace\"}[1m]))", "hide": false, "interval": "", "legendFormat": "log writtern/s", @@ -4054,7 +4054,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "sum(rate(mysql_global_status_bytes_received{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"dn\", namespace=\"$namespace\"}[1m]))", + "expr": "sum(rate(mysql_global_status_bytes_received{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", namespace=\"$namespace\"}[1m]))", "interval": "", "legendFormat": "received/s", "queryType": "randomWalk", @@ -4067,7 +4067,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "sum(rate(mysql_global_status_bytes_sent{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"dn\", namespace=\"$namespace\"}[1m]))", + "expr": "sum(rate(mysql_global_status_bytes_sent{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", namespace=\"$namespace\"}[1m]))", "hide": false, "interval": "", "legendFormat": "sent/s", @@ -4164,7 +4164,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "sum(rate(mysql_global_status_commands_total{polapp_kubernetes_io_instanceardbx_name=\"$polardbx\", app_kubernetes_io_component=\"dn\", namespace=\"$namespace\", command=~\"xa_.*\"}[1m])) by (command)", + "expr": "sum(rate(mysql_global_status_commands_total{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", namespace=\"$namespace\", command=~\"xa_.*\"}[1m])) by (command)", "interval": "", "legendFormat": "{{ command }}", "queryType": "randomWalk", @@ -4261,7 +4261,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "sum(rate(mysql_global_status_commands_total{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"dn\", namespace=\"$namespace\", command=~\"begin|commit|rollback\"}[1m])) by (command)", + "expr": "sum(rate(mysql_global_status_commands_total{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", namespace=\"$namespace\", command=~\"begin|commit|rollback\"}[1m])) by (command)", "interval": "", "legendFormat": "{{ command }}", "queryType": "randomWalk", @@ -4387,7 +4387,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "polardbx_cdc_dumper_delay_in_millisecond{namespace=\"$namespace\"}\n* on(namespace,pod)\ngroup_left() polardbx_cdc_up{app_kubernetes_io_instance=\"$polardbx\", namespace=\"$namespace\", app_kubernetes_io_component=\"cdc\"}", + "expr": "polardbx_cdc_dumper_delay_in_millisecond{namespace=\"$namespace\"}\n* on(namespace,pod)\ngroup_left() polardbx_cdc_up{app_kubernetes_io_instance=\"$polardbx\", namespace=\"$namespace\", apps_kubeblocks_io_component_name=\"cdc\"}", "interval": "", "legendFormat": "{{ pod }}", "queryType": "randomWalk", @@ -4487,7 +4487,7 @@ }, "editorMode": "code", "exemplar": true, - "expr": "polardbx_cdc_dumper_jvm_heap_usage{namespace=\"$namespace\"}\n* on(namespace,pod)\ngroup_left() polardbx_cdc_up{app_kubernetes_io_instance=\"$polardbx\", namespace=\"$namespace\", app_kubernetes_io_component=\"cdc\"}", + "expr": "polardbx_cdc_dumper_jvm_heap_usage{namespace=\"$namespace\"}\n* on(namespace,pod)\ngroup_left() polardbx_cdc_up{app_kubernetes_io_instance=\"$polardbx\", namespace=\"$namespace\", apps_kubeblocks_io_component_name=\"cdc\"}", "interval": "", "legendFormat": "{{ pod }}", "queryType": "randomWalk", diff --git a/addons/polardbx/scripts/metadb-setup.tpl b/addons/polardbx/scripts/metadb-setup.tpl index 9f72c7f2e..dee829aba 100644 --- a/addons/polardbx/scripts/metadb-setup.tpl +++ b/addons/polardbx/scripts/metadb-setup.tpl @@ -6,7 +6,8 @@ until mysql -h$GMS_SVC_NAME -P$GMS_SVC_PORT -u$metaDbUser -p$metaDbNonEncPasswd done function generate_dn_init_sql() { - echo "$DN_HEADLESS_SVC_NAME" | tr ',' '\n' | while IFS= read -r item + echo $DN_POD_FQDN_LIST + echo "$DN_POD_FQDN_LIST" | tr ',' '\n' | while IFS= read -r item do DN_HOSTNAME=$item DN_NAME=$(echo "$DN_HOSTNAME" | cut -d'.' -f2 | sed s/-headless//) diff --git a/addons/polardbx/templates/cmpd-cdc.yaml b/addons/polardbx/templates/cmpd-cdc.yaml index 7bc955598..988645c6a 100644 --- a/addons/polardbx/templates/cmpd-cdc.yaml +++ b/addons/polardbx/templates/cmpd-cdc.yaml @@ -124,7 +124,7 @@ spec: - name: metaDbNonEncPasswd value: $(SERVICE_PASSWORD) - name: dnPasswordKey - value: "$(metaDbNonEncPasswd)$(metaDbNonEncPasswd)" + value: "$(metaDbNonEncPasswd)" - name: cpu_cores valueFrom: resourceFieldRef: diff --git a/addons/polardbx/templates/cmpd-cn.yaml b/addons/polardbx/templates/cmpd-cn.yaml index 684a358cb..f33206077 100644 --- a/addons/polardbx/templates/cmpd-cn.yaml +++ b/addons/polardbx/templates/cmpd-cn.yaml @@ -59,13 +59,12 @@ spec: port: name: mysql option: Required - - name: DN_HEADLESS_SVC_NAME + - name: DN_POD_FQDN_LIST valueFrom: - serviceVarRef: + componentVarRef: compDef: polardbx-dn optional: false - name: headless - host: Required + podFQDNs: Required - name: DN_SVC_PORT valueFrom: serviceVarRef: @@ -94,7 +93,7 @@ spec: - name: metaDbNonEncPasswd value: $(SERVICE_PASSWORD) - name: dnPasswordKey - value: "$(metaDbNonEncPasswd)$(metaDbNonEncPasswd)" + value: "$(metaDbNonEncPasswd)" - name: switchCloud value: aliyun - name: metaDbConn @@ -150,7 +149,7 @@ spec: - name: metaDbConn value: "mysql -h$(GMS_SVC_NAME) -P3306 -u$(metaDbUser) -p$(metaDbPasswd) -D$(metaDbName)" - name: dnPasswordKey - value: "$(metaDbNonEncPasswd)$(metaDbNonEncPasswd)" + value: "$(metaDbNonEncPasswd)" - name: metaDbXprotoPort value: "0" - name: storageDbXprotoPort diff --git a/addons/polardbx/templates/cmpd-dn.yaml b/addons/polardbx/templates/cmpd-dn.yaml index 4353a775a..d96f43138 100644 --- a/addons/polardbx/templates/cmpd-dn.yaml +++ b/addons/polardbx/templates/cmpd-dn.yaml @@ -79,7 +79,8 @@ spec: - sh - -c - | - mysql -h127.0.0.1 -P3306 -uroot -N -B -e "select role from information_schema.alisql_cluster_local" | xargs echo -n + role=$(mysql -h127.0.0.1 -P3306 -uroot -N -B -e "select role from information_schema.alisql_cluster_local" | tr '[:upper:]' '[:lower:]' | xargs echo -n) + echo -n "$role" timeoutSeconds: {{ .Values.roleProbe.timeoutSeconds }} periodSeconds: {{ .Values.roleProbe.periodSeconds }} failureThreshold: {{ .Values.roleProbe.failureThreshold }} diff --git a/addons/polardbx/templates/cmpd-gms.yaml b/addons/polardbx/templates/cmpd-gms.yaml index 6cd079b28..7defb25f0 100644 --- a/addons/polardbx/templates/cmpd-gms.yaml +++ b/addons/polardbx/templates/cmpd-gms.yaml @@ -31,8 +31,8 @@ spec: - name: polardbx_root initAccount: true passwordGenerationPolicy: - length: 10 - numDigits: 5 + length: 16 + numDigits: 0 numSymbols: 0 letterCase: MixedCases updateStrategy: Serial @@ -75,7 +75,8 @@ spec: - sh - -c - | - mysql -h127.0.0.1 -P3306 -uroot -N -B -e "select role from information_schema.alisql_cluster_local" | xargs echo -n + role=$(mysql -h127.0.0.1 -P3306 -uroot -N -B -e "select role from information_schema.alisql_cluster_local" | tr '[:upper:]' '[:lower:]' | xargs echo -n) + echo -n "$role" timeoutSeconds: {{ .Values.roleProbe.timeoutSeconds }} periodSeconds: {{ .Values.roleProbe.periodSeconds }} failureThreshold: {{ .Values.roleProbe.failureThreshold }} diff --git a/examples/polardbx/README.md b/examples/polardbx/README.md index 7089be360..e3bdc48b4 100644 --- a/examples/polardbx/README.md +++ b/examples/polardbx/README.md @@ -8,7 +8,7 @@ PolarDB-X is a cloud native distributed SQL Database designed for high concurren | Horizontal
scaling | Vertical
scaling | Expand
volume | Restart | Stop/Start | Configure | Expose | Switchover | |------------------------|-----------------------|-------------------|-----------|------------|-----------|--------|------------| -| Yes (cn) | Yes | Yes | Yes | Yes | No | Yes | No | +| Yes (cn, cdc) | Yes | Yes | Yes | Yes | No | Yes | No | ### Versions @@ -28,7 +28,19 @@ PolarDB-X is a cloud native distributed SQL Database designed for high concurren ### [Create](cluster.yaml) -Create a polardbx cluster +> [!IMPORTANT] +> Make sure the `clusterName` and `namespace` are short such that the length of following string is less than 64 characters +> +> - ``-gms-``.``-gms-headless.``.svc.cluster.local:11306 +> +> This is a constraint of the PolarDB-X database. The column `IP_PORT` defined in table `information_schema.ALISQL_CLUSTER_GLOBAL` is of type `VARCHAR(64)`. +> You may login to the database and run the following SQL to check the definition of the table: +> +> ```sql +> show create table information_schema.ALISQL_CLUSTER_GLOBAL; +> ``` + +Create a polardbx cluster with four components: cn, dn, cdc, and gms. ```bash kubectl apply -f examples/polardbx/cluster.yaml @@ -40,11 +52,25 @@ As PolarDB-X is a distributed database with multiple components. You may prefer kubectl apply -f examples/polardbx/cluster-with-schedule-policy.yaml ``` +To connect to the database, you can use the following command to get the connection information: + +```bash +kubectl port-forward svc/pxc-cn 3306:3306 +mysql -h127.0.0.1 -u$USER_NAME -p$PASSWORD +``` + +Credentials can be found in the secret `pxc-gms-account-polardbx-root` in the namespace where the cluster is deployed. + +```bash +kubectl get secret pxc-gms-account-polardbx-root -o jsonpath="{.data.password}" | base64 --decode +kubectl get secret pxc-gms-account-polardbx-root -o jsonpath="{.data.username}" | base64 --decode +``` + ### Horizontal scaling #### [Scale-out](scale-out.yaml) -Horizontal scaling out polardbx cluster by adding ONE more cn replica: +Horizontal scaling out polardbx cluster by adding ONE more `cn` replica: ```bash kubectl apply -f examples/polardbx/scale-out.yaml @@ -52,12 +78,23 @@ kubectl apply -f examples/polardbx/scale-out.yaml #### [Scale-in](scale-in.yaml) -Horizontal scaling in polardbx cluster by deleting ONE cn replica: +Horizontal scaling in polardbx cluster by deleting ONE `cn` replica: ```bash kubectl apply -f examples/polardbx/scale-in.yaml ``` +### [Vertical scaling](verticalscale.yaml) + +Vertical scaling involves increasing or decreasing resources to an existing database cluster. +Resources that can be scaled include:, CPU cores/processing power and Memory (RAM). + +To vertical scaling up or down specified component, you can apply the following yaml file: + +```bash +kubectl apply -f examples/polardbx/verticalscale.yaml +``` + ### [Expand volume](volumeexpand.yaml) Volume expansion is the ability to increase the size of a Persistent Volume Claim (PVC) after it's created. It is introduced in Kubernetes v1.11 and goes GA in Kubernetes v1.24. It allows Kubernetes users to simply edit their PersistentVolumeClaim objects without requiring any downtime at all if possible. @@ -103,12 +140,33 @@ Start the stopped cluster kubectl apply -f examples/polardbx/start.yaml ``` +### Observability + +There are various ways to monitor the cluster. Here we use Prometheus and Grafana to demonstrate how to monitor the cluster. + +#### Installing the Prometheus Operator + +You may skip this step if you have already installed the Prometheus Operator. +Or you can follow the steps in [How to install the Prometheus Operator](../docs/install-prometheus.md) to install the Prometheus Operator. + +#### Create PodMonitor + +Apply the `PodMonitor` file to monitor the cluster: + +```bash +kubectl apply -f examples/polardbx/pod-monitor.yaml +``` + +##### Access the Grafana Dashboard + +Login to the Grafana dashboard and import the dashboard [PolarDB-X Dashboard Overview](https://github.com/apecloud/kubeblocks-addons/blob/main/addons/polardbx/dashboards/polardbx-overview.json) to monitor the cluster. + ### Delete If you want to delete the cluster and all its resource, you can modify the termination policy and then delete the cluster ```bash -kubectl patch cluster polardbx-cluster -p '{"spec":{"terminationPolicy":"WipeOut"}}' --type="merge" +kubectl patch cluster pxc -p '{"spec":{"terminationPolicy":"WipeOut"}}' --type="merge" -kubectl delete cluster polardbx-cluster +kubectl delete cluster pxc ``` diff --git a/examples/polardbx/cluster-with-schedule-policy.yaml b/examples/polardbx/cluster-with-schedule-policy.yaml index e06de0378..259aa0c00 100644 --- a/examples/polardbx/cluster-with-schedule-policy.yaml +++ b/examples/polardbx/cluster-with-schedule-policy.yaml @@ -1,7 +1,7 @@ apiVersion: apps.kubeblocks.io/v1 kind: Cluster metadata: - name: polardbx-cluster-with-sp + name: pxc namespace: default spec: # Specifies the behavior when a Cluster is deleted. @@ -24,14 +24,14 @@ spec: - podAffinityTerm: labelSelector: matchLabels: - app.kubernetes.io/instance: polardbx-cluster + app.kubernetes.io/instance: pxc apps.kubeblocks.io/component-name: gms topologyKey: kubernetes.io/hostname weight: 100 requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchLabels: - app.kubernetes.io/instance: polardbx-cluster + app.kubernetes.io/instance: pxc apps.kubeblocks.io/component-name: gms topologyKey: kubernetes.io/hostname replicas: 1 @@ -71,7 +71,7 @@ spec: - name: cn componentDef: polardbx-cn # this ia an simple example of schedulingPolicy - # pods cannot be scheduled to the node with any POD from the same cluster `polardbx-cluster` + # pods cannot be scheduled to the node with any POD from the same cluster `pxc` schedulingPolicy: affinity: podAntiAffinity: @@ -79,13 +79,13 @@ spec: - podAffinityTerm: labelSelector: matchLabels: - app.kubernetes.io/instance: polardbx-cluster + app.kubernetes.io/instance: pxc topologyKey: kubernetes.io/hostname weight: 100 requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchLabels: - app.kubernetes.io/instance: polardbx-cluster + app.kubernetes.io/instance: pxc topologyKey: kubernetes.io/hostname replicas: 1 resources: @@ -106,14 +106,14 @@ spec: - podAffinityTerm: labelSelector: matchLabels: - app.kubernetes.io/instance: polardbx-cluster + app.kubernetes.io/instance: pxc apps.kubeblocks.io/component-name: dn topologyKey: kubernetes.io/hostname weight: 100 requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchLabels: - app.kubernetes.io/instance: polardbx-cluster + app.kubernetes.io/instance: pxc apps.kubeblocks.io/component-name: dn topologyKey: kubernetes.io/hostname replicas: 1 diff --git a/examples/polardbx/cluster.yaml b/examples/polardbx/cluster.yaml index 6f070cef5..75e0e28e7 100644 --- a/examples/polardbx/cluster.yaml +++ b/examples/polardbx/cluster.yaml @@ -1,79 +1,63 @@ apiVersion: apps.kubeblocks.io/v1 kind: Cluster metadata: - name: polardbx-cluster + name: pxc namespace: default spec: - # Specifies the behavior when a Cluster is deleted. - # - `DoNotTerminate`: Prevents deletion of the Cluster. This policy ensures that all resources remain intact. - # - `Delete`: Extends the `Halt` policy by also removing PVCs, leading to a thorough cleanup while removing all persistent data. - # - `WipeOut`: An aggressive policy that deletes all Cluster resources, including volume snapshots and backups in external storage. This results in complete data removal and should be used cautiously, primarily in non-production environments to avoid irreversible data loss. terminationPolicy: Delete - # Specifies a list of ClusterComponentSpec objects used to define the individual components that make up a Cluster. This field allows for detailed configuration of each component within the Cluster. - # Note: `shardingSpecs` and `componentSpecs` cannot both be empty; at least one must be defined to configure a cluster. - # ClusterComponentSpec defines the specifications for a Component in a Cluster. componentSpecs: - name: gms componentDef: polardbx-gms replicas: 1 resources: limits: - cpu: "0.5" - memory: 1Gi + cpu: "1" + memory: "1Gi" requests: - cpu: "0.5" - memory: 1Gi + cpu: "1" + memory: "1Gi" volumeClaimTemplates: - name: data spec: + storageClassName: "" accessModes: - ReadWriteOnce - # The name of the StorageClass required by the claim. - # If not specified, the StorageClass annotated with - # `storageclass.kubernetes.io/is-default-class=true` will be used by default - storageClassName: "" resources: requests: storage: 20Gi - - name: dn + - name: dn-0 componentDef: polardbx-dn replicas: 1 resources: limits: - cpu: "0.5" - memory: 1Gi + cpu: "1" + memory: "1Gi" requests: - cpu: "0.5" - memory: 1Gi + cpu: "1" + memory: "1Gi" volumeClaimTemplates: - name: data spec: + storageClassName: "" accessModes: - ReadWriteOnce - # The name of the StorageClass required by the claim. - # If not specified, the StorageClass annotated with - # `storageclass.kubernetes.io/is-default-class=true` will be used by default - storageClassName: "" resources: requests: storage: 20Gi - name: cn componentDef: polardbx-cn - replicas: 1 + replicas: 2 resources: limits: - cpu: "0.5" - memory: 1Gi + cpu: "1" + memory: "1Gi" requests: - cpu: "0.5" - memory: 1Gi + cpu: "1" + memory: "1Gi" - name: cdc componentDef: polardbx-cdc replicas: 1 resources: limits: - cpu: "0.5" - memory: 1Gi - requests: - cpu: "0.5" - memory: 1Gi + cpu: "1" + memory: "1Gi" \ No newline at end of file diff --git a/examples/polardbx/pod-monitor.yaml b/examples/polardbx/pod-monitor.yaml new file mode 100644 index 000000000..a0c2c054e --- /dev/null +++ b/examples/polardbx/pod-monitor.yaml @@ -0,0 +1,29 @@ + +apiVersion: monitoring.coreos.com/v1 +kind: PodMonitor +metadata: + name: pxc-pod-monitor + namespace: monitoring # Note: this is namespace for prometheus operator + labels: # this is labels set in `prometheus.spec.podMonitorSelector` + release: prometheus +spec: + jobLabel: app.kubernetes.io/managed-by + # defines the labels which are transferred from the + # associated Kubernetes `Pod` object onto the ingested metrics + # set the lables w.r.t you own needs + podTargetLabels: + - app.kubernetes.io/instance + - app.kubernetes.io/managed-by + - apps.kubeblocks.io/component-name + - apps.kubeblocks.io/pod-name + - kubeblocks.io/role + podMetricsEndpoints: + - path: /metrics + port: metrics + scheme: http + namespaceSelector: + matchNames: + - default + selector: + matchLabels: + app.kubernetes.io/instance: pxc \ No newline at end of file diff --git a/examples/polardbx/restart.yaml b/examples/polardbx/restart.yaml index 36e345164..c2a131ad3 100644 --- a/examples/polardbx/restart.yaml +++ b/examples/polardbx/restart.yaml @@ -5,7 +5,7 @@ metadata: namespace: default spec: # Specifies the name of the Cluster resource that this operation is targeting. - clusterName: polardbx-cluster + clusterName: pxc type: Restart # Lists Components to be restarted. ComponentOps specifies the Component to be operated on. restart: diff --git a/examples/polardbx/scale-in.yaml b/examples/polardbx/scale-in.yaml index cd79276c1..09f7e275f 100644 --- a/examples/polardbx/scale-in.yaml +++ b/examples/polardbx/scale-in.yaml @@ -5,7 +5,7 @@ metadata: namespace: default spec: # Specifies the name of the Cluster resource that this operation is targeting. - clusterName: polardbx-cluster + clusterName: pxc type: HorizontalScaling # Lists HorizontalScaling objects, each specifying scaling requirements for a Component, including desired total replica counts, configurations for new instances, modifications for existing instances, and instance downscaling options horizontalScaling: diff --git a/examples/polardbx/scale-out.yaml b/examples/polardbx/scale-out.yaml index fb61180a5..86d17399e 100644 --- a/examples/polardbx/scale-out.yaml +++ b/examples/polardbx/scale-out.yaml @@ -5,7 +5,7 @@ metadata: namespace: default spec: # Specifies the name of the Cluster resource that this operation is targeting. - clusterName: polardbx-cluster + clusterName: pxc type: HorizontalScaling # Lists HorizontalScaling objects, each specifying scaling requirements for a Component, including desired total replica counts, configurations for new instances, modifications for existing instances, and instance downscaling options horizontalScaling: diff --git a/examples/polardbx/start.yaml b/examples/polardbx/start.yaml index 92ee1cabf..029d6fefb 100644 --- a/examples/polardbx/start.yaml +++ b/examples/polardbx/start.yaml @@ -5,5 +5,5 @@ metadata: namespace: default spec: # Specifies the name of the Cluster resource that this operation is targeting. - clusterName: polardbx-cluster + clusterName: pxc type: Start diff --git a/examples/polardbx/stop.yaml b/examples/polardbx/stop.yaml index 5d4f9dd21..37ecec821 100644 --- a/examples/polardbx/stop.yaml +++ b/examples/polardbx/stop.yaml @@ -5,5 +5,5 @@ metadata: namespace: default spec: # Specifies the name of the Cluster resource that this operation is targeting. - clusterName: polardbx-cluster + clusterName: pxc type: Stop diff --git a/examples/polardbx/verticalscale.yaml b/examples/polardbx/verticalscale.yaml index c4e091244..316f7c61b 100644 --- a/examples/polardbx/verticalscale.yaml +++ b/examples/polardbx/verticalscale.yaml @@ -5,7 +5,7 @@ metadata: namespace: default spec: # Specifies the name of the Cluster resource that this operation is targeting. - clusterName: polardbx-cluster + clusterName: pxc type: VerticalScaling # Lists VerticalScaling objects, each specifying a component and its desired compute resources for vertical scaling. verticalScaling: diff --git a/examples/polardbx/volumeexpand.yaml b/examples/polardbx/volumeexpand.yaml index 630c41dab..4825c439a 100644 --- a/examples/polardbx/volumeexpand.yaml +++ b/examples/polardbx/volumeexpand.yaml @@ -5,7 +5,7 @@ metadata: namespace: default spec: # Specifies the name of the Cluster resource that this operation is targeting. - clusterName: polardbx-cluster + clusterName: pxc type: VolumeExpansion # Lists VolumeExpansion objects, each specifying a component and its corresponding volumeClaimTemplates that requires storage expansion. volumeExpansion: