[BUG] upgrade kb from 0.8.3 to 0.9.0 some cluster pod restart
Describe the bug
To Reproduce Steps to reproduce the behavior:
- install kubeblocks 0.8.3
curl -fsSL https://kubeblocks.io/installer/install_cli.sh | bash -s v0.8.4-beta.3
kbcli kubeblocks install --create-namespace --version 0.8.3 --set image.registry=docker.io --set dataProtection.image.registry=docker.io --set addonChartsImage.registry=docker.io --set dataProtection.image.datasafed.tag=0.1.0 --namespace kb-cluster
- create cluster
- upgrade kubeblocks to 0.9.0
curl -fsSL https://kubeblocks.io/installer/install_cli.sh | bash -s v0.9.0-beta.27
kbcli kubeblocks upgrade --auto-approve --version 0.9.0-beta.33 --set image.registry=docker.io --set dataProtection.image.registry=docker.io --set addonChartsImage.registry=docker.io --set dataProtection.image.datasafed.tag=0.2.0 --namespace kb-cluster
- See error: pod restart
kubectl get pod -n ns-cluster
NAME READY STATUS RESTARTS AGE
postgres-cluster-postgresql-0 5/5 Running 0 3h36m
postgres-cluster-postgresql-1 5/5 Running 0 8m10s
postgres-cluster-postgresql-2 5/5 Running 0 3h36m
kafka-cluster-broker-0 2/2 Running 0 6m6s
pulsar-cluster-bookies-0 2/2 Running 0 6m5s
pulsar-cluster-bookies-1 2/2 Running 2 (3h34m ago) 3h43m
pulsar-cluster-bookies-2 2/2 Running 0 3h44m
pulsar-cluster-bookies-3 2/2 Running 0 3h33m
pulsar-cluster-bookies-4 2/2 Running 0 3h33m
pulsar-cluster-pulsar-broker-0 3/3 Running 1 (34m ago) 3h36m
pulsar-cluster-pulsar-broker-1 3/3 Running 1 (34m ago) 3h37m
pulsar-cluster-pulsar-proxy-0 2/2 Running 0 3h48m
pulsar-cluster-zookeeper-0 2/2 Running 0 3h34m
pulsar-cluster-zookeeper-1 2/2 Running 0 3h34m
pulsar-cluster-zookeeper-2 2/2 Running 0 3h35m
diff pg cluster yaml
diff 0.8.3/cluster/cluster-postgres-cluster.yaml 0.9.0/cluster/cluster-postgres-cluster.yaml
16c16
< resourceVersion: "829948"
---
> resourceVersion: "981306"
32d31
< noCreatePDB: false
41d39
< rsmTransformPolicy: ToSts
53d50
< monitor: {}
diff pg component yaml
diff 0.8.3/component/component-postgres-cluster-postgresql.yaml 0.9.0/component/component-postgres-cluster-postgresql.yaml
8a9
> - component.kubeblocks.io/finalizer
26c27
< resourceVersion: "817808"
---
> resourceVersion: "981215"
37d37
< monitor: true
46d45
< rsmTransformPolicy: ToSts
diff sts yaml
diff 0.8.3/sts/sts-postgres-cluster-postgresql.yaml 0.9.0/sts/sts-postgres-cluster-postgresql.yaml
24,31c24
< ownerReferences:
< - apiVersion: workloads.kubeblocks.io/v1alpha1
< blockOwnerDeletion: true
< controller: true
< kind: ReplicatedStateMachine
< name: postgres-cluster-postgresql
< uid: 746d8465-33eb-4f6d-84ba-789493d9fd16
< resourceVersion: "817646"
---
> resourceVersion: "982037"
- get pg upgrade before cluster yaml
apiVersion: apps.kubeblocks.io/v1alpha1
kind: Cluster
metadata:
annotations:
kubeblocks.io/reconcile: "2024-06-19T06:53:52.035009079Z"
creationTimestamp: "2024-06-19T06:13:55Z"
finalizers:
- cluster.kubeblocks.io/finalizer
generation: 10
labels:
app.kubernetes.io/instance: postgres-cluster
clusterdefinition.kubeblocks.io/name: postgresql
clusterversion.kubeblocks.io/name: postgresql-12.14.0-pgvector-v0.6.1
name: postgres-cluster
namespace: ns-cluster
resourceVersion: "829948"
uid: 4e6980d5-7358-4bb2-b9c7-43c4153e9919
spec:
affinity:
podAntiAffinity: Preferred
tenancy: SharedNode
clusterDefinitionRef: postgresql
clusterVersionRef: postgresql-12.14.0-pgvector-v0.6.1
componentSpecs:
- classDefRef:
class: ""
componentDefRef: postgresql
enabledLogs:
- running
monitor: true
name: postgresql
noCreatePDB: false
replicas: 3
resources:
limits:
cpu: 200m
memory: 644245094400m
requests:
cpu: 200m
memory: 644245094400m
rsmTransformPolicy: ToSts
serviceAccountName: kb-postgres-cluster
switchPolicy:
type: Noop
volumeClaimTemplates:
- name: data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 3Gi
monitor: {}
resources:
cpu: "0"
memory: "0"
services:
- componentSelector: postgresql
name: postgresql-internet
roleSelector: primary
serviceName: postgresql-internet
spec:
ports:
- name: tcp-postgresql
nodePort: 31138
port: 5432
protocol: TCP
targetPort: tcp-postgresql
- name: tcp-pgbouncer
nodePort: 31899
port: 6432
protocol: TCP
targetPort: tcp-pgbouncer
type: LoadBalancer
storage:
size: "0"
terminationPolicy: WipeOut
status:
clusterDefGeneration: 2
components:
postgresql:
phase: Running
podsReady: true
podsReadyTime: "2024-06-19T06:55:17Z"
conditions:
- lastTransitionTime: "2024-06-19T06:13:57Z"
message: 'The operator has started the provisioning of Cluster: postgres-cluster'
observedGeneration: 10
reason: PreCheckSucceed
status: "True"
type: ProvisioningStarted
- lastTransitionTime: "2024-06-19T07:04:17Z"
message: Successfully applied for resources
observedGeneration: 10
reason: ApplyResourcesSucceed
status: "True"
type: ApplyResources
- lastTransitionTime: "2024-06-19T06:55:17Z"
message: all pods of components are ready, waiting for the probe detection successful
reason: AllReplicasReady
status: "True"
type: ReplicasReady
- lastTransitionTime: "2024-06-19T06:55:17Z"
message: 'Cluster: postgres-cluster is ready, current phase is Running'
reason: ClusterReady
status: "True"
type: Ready
observedGeneration: 10
phase: Running
component yaml
apiVersion: apps.kubeblocks.io/v1alpha1
kind: Component
metadata:
annotations:
kubeblocks.io/generation: "10"
creationTimestamp: "2024-06-19T06:13:57Z"
finalizers:
- cluster.kubeblocks.io/finalizer
generation: 6
labels:
app.kubernetes.io/instance: postgres-cluster
app.kubernetes.io/managed-by: kubeblocks
apps.kubeblocks.io/cluster-uid: 4e6980d5-7358-4bb2-b9c7-43c4153e9919
apps.kubeblocks.io/component-name: postgresql
clusterdefinition.kubeblocks.io/name: postgresql
clusterversion.kubeblocks.io/name: postgresql-12.14.0-pgvector-v0.6.1
name: postgres-cluster-postgresql
namespace: ns-cluster
ownerReferences:
- apiVersion: apps.kubeblocks.io/v1alpha1
blockOwnerDeletion: true
controller: true
kind: Cluster
name: postgres-cluster
uid: 4e6980d5-7358-4bb2-b9c7-43c4153e9919
resourceVersion: "817808"
uid: cc48cd68-00c2-488d-ba37-5c99e5a9c347
spec:
affinity:
podAntiAffinity: Preferred
tenancy: SharedNode
classDefRef:
class: ""
compDef: ""
enabledLogs:
- running
monitor: true
replicas: 3
resources:
limits:
cpu: 200m
memory: 644245094400m
requests:
cpu: 200m
memory: 644245094400m
rsmTransformPolicy: ToSts
serviceAccountName: kb-postgres-cluster
tolerations:
- effect: NoSchedule
key: kb-data
operator: Equal
value: "true"
volumeClaimTemplates:
- name: data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 3Gi
status:
conditions:
- lastTransitionTime: "2024-06-19T06:14:10Z"
message: 'The operator has started the provisioning of Cluster: postgres-cluster-postgresql'
observedGeneration: 6
reason: PreCheckSucceed
status: "True"
type: ProvisioningStarted
observedGeneration: 6
phase: Running
sts yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
annotations:
config.kubeblocks.io/tpl-agamotto-configuration: postgres-cluster-postgresql-agamotto-configuration
config.kubeblocks.io/tpl-pgbouncer-configuration: postgres-cluster-postgresql-pgbouncer-configuration
config.kubeblocks.io/tpl-postgresql-configuration: postgres-cluster-postgresql-postgresql-configuration
config.kubeblocks.io/tpl-postgresql-custom-metrics: postgres-cluster-postgresql-postgresql-custom-metrics
config.kubeblocks.io/tpl-postgresql-scripts: postgres-cluster-postgresql-postgresql-scripts
kubeblocks.io/generation: "10"
creationTimestamp: "2024-06-19T06:14:27Z"
finalizers:
- cluster.kubeblocks.io/finalizer
generation: 8
labels:
app.kubernetes.io/component: postgresql
app.kubernetes.io/instance: postgres-cluster
app.kubernetes.io/managed-by: kubeblocks
app.kubernetes.io/name: postgresql
apps.kubeblocks.io/component-name: postgresql
rsm.workloads.kubeblocks.io/controller-generation: "8"
name: postgres-cluster-postgresql
namespace: ns-cluster
ownerReferences:
- apiVersion: workloads.kubeblocks.io/v1alpha1
blockOwnerDeletion: true
controller: true
kind: ReplicatedStateMachine
name: postgres-cluster-postgresql
uid: 746d8465-33eb-4f6d-84ba-789493d9fd16
resourceVersion: "817646"
uid: 36f67384-fc3e-48da-94db-49acc956639f
spec:
persistentVolumeClaimRetentionPolicy:
whenDeleted: Retain
whenScaled: Retain
podManagementPolicy: Parallel
replicas: 3
revisionHistoryLimit: 10
selector:
matchLabels:
app.kubernetes.io/instance: postgres-cluster
app.kubernetes.io/managed-by: kubeblocks
app.kubernetes.io/name: postgresql
apps.kubeblocks.io/component-name: postgresql
serviceName: postgres-cluster-postgresql-headless
template:
metadata:
annotations:
config.kubeblocks.io/restart-postgresql-configuration: 64bf895d5d
kubeblocks.io/restart: "2024-06-19T06:34:46Z"
creationTimestamp: null
labels:
app.kubernetes.io/component: postgresql
app.kubernetes.io/instance: postgres-cluster
app.kubernetes.io/managed-by: kubeblocks
app.kubernetes.io/name: postgresql
app.kubernetes.io/version: ""
apps.kubeblocks.io/component-name: postgresql
spec:
affinity:
nodeAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- preference:
matchExpressions:
- key: kb-data
operator: In
values:
- "true"
weight: 100
podAntiAffinity: {}
containers:
- command:
- /kb-scripts/setup.sh
env:
- name: KB_POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
- name: KB_POD_UID
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.uid
- name: KB_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: KB_SA_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.serviceAccountName
- name: KB_NODENAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.nodeName
- name: KB_HOST_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.hostIP
- name: KB_POD_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: KB_POD_IPS
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIPs
- name: KB_HOSTIP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.hostIP
- name: KB_PODIP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: KB_PODIPS
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIPs
- name: KB_POD_FQDN
value: $(KB_POD_NAME).postgres-cluster-postgresql-headless.$(KB_NAMESPACE).svc
- name: SERVICE_PORT
value: "5432"
- name: DCS_ENABLE_KUBERNETES_API
value: "true"
- name: KUBERNETES_USE_CONFIGMAPS
value: "true"
- name: SCOPE
value: $(KB_CLUSTER_NAME)-$(KB_COMP_NAME)-patroni$(KB_CLUSTER_UID_POSTFIX_8)
- name: KUBERNETES_SCOPE_LABEL
value: apps.kubeblocks.postgres.patroni/scope
- name: KUBERNETES_ROLE_LABEL
value: apps.kubeblocks.postgres.patroni/role
- name: KUBERNETES_LABELS
value: '{"app.kubernetes.io/instance":"$(KB_CLUSTER_NAME)","apps.kubeblocks.io/component-name":"$(KB_COMP_NAME)"}'
- name: RESTORE_DATA_DIR
value: /home/postgres/pgdata/kb_restore
- name: KB_PG_CONFIG_PATH
value: /home/postgres/conf/postgresql.conf
- name: SPILO_CONFIGURATION
value: |
bootstrap:
initdb:
- auth-host: md5
- auth-local: trust
- name: ALLOW_NOSSL
value: "true"
- name: PGROOT
value: /home/postgres/pgdata/pgroot
- name: POD_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: POD_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: PGUSER_SUPERUSER
valueFrom:
secretKeyRef:
key: username
name: postgres-cluster-conn-credential
optional: false
- name: PGPASSWORD_SUPERUSER
valueFrom:
secretKeyRef:
key: password
name: postgres-cluster-conn-credential
optional: false
- name: PGUSER_ADMIN
value: superadmin
- name: PGPASSWORD_ADMIN
valueFrom:
secretKeyRef:
key: password
name: postgres-cluster-conn-credential
optional: false
- name: PGUSER_STANDBY
value: standby
- name: PGPASSWORD_STANDBY
valueFrom:
secretKeyRef:
key: password
name: postgres-cluster-conn-credential
optional: false
- name: PGUSER
valueFrom:
secretKeyRef:
key: username
name: postgres-cluster-conn-credential
optional: false
- name: PGPASSWORD
valueFrom:
secretKeyRef:
key: password
name: postgres-cluster-conn-credential
optional: false
envFrom:
- configMapRef:
name: postgres-cluster-postgresql-env
optional: false
- configMapRef:
name: postgres-cluster-postgresql-rsm-env
optional: false
image: docker.io/apecloud/spilo:12.14.0-pgvector-v0.6.1
imagePullPolicy: IfNotPresent
name: postgresql
ports:
- containerPort: 5432
name: tcp-postgresql
protocol: TCP
- containerPort: 8008
name: patroni
protocol: TCP
readinessProbe:
exec:
command:
- /bin/sh
- -c
- -ee
- |
exec pg_isready -U "postgres" -h 127.0.0.1 -p 5432
[ -f /postgresql/tmp/.initialized ] || [ -f /postgresql/.initialized ]
failureThreshold: 3
initialDelaySeconds: 10
periodSeconds: 30
successThreshold: 1
timeoutSeconds: 5
resources:
limits:
cpu: 200m
memory: 644245094400m
requests:
cpu: 200m
memory: 644245094400m
securityContext:
runAsUser: 0
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /dev/shm
name: dshm
- mountPath: /home/postgres/pgdata
name: data
- mountPath: /home/postgres/conf
name: postgresql-config
- mountPath: /kb-scripts
name: scripts
- mountPath: /kb-podinfo
name: pod-info
- command:
- /kb-scripts/pgbouncer_setup.sh
env:
- name: KB_POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
- name: KB_POD_UID
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.uid
- name: KB_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: KB_SA_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.serviceAccountName
- name: KB_NODENAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.nodeName
- name: KB_HOST_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.hostIP
- name: KB_POD_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: KB_POD_IPS
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIPs
- name: KB_HOSTIP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.hostIP
- name: KB_PODIP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: KB_PODIPS
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIPs
- name: KB_POD_FQDN
value: $(KB_POD_NAME).postgres-cluster-postgresql-headless.$(KB_NAMESPACE).svc
- name: PGBOUNCER_AUTH_TYPE
value: md5
- name: POSTGRESQL_USERNAME
valueFrom:
secretKeyRef:
key: username
name: postgres-cluster-conn-credential
optional: false
- name: POSTGRESQL_PASSWORD
valueFrom:
secretKeyRef:
key: password
name: postgres-cluster-conn-credential
optional: false
- name: POSTGRESQL_PORT
value: "5432"
- name: POSTGRESQL_HOST
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: PGBOUNCER_PORT
value: "6432"
- name: PGBOUNCER_BIND_ADDRESS
value: 0.0.0.0
envFrom:
- configMapRef:
name: postgres-cluster-postgresql-env
optional: false
- configMapRef:
name: postgres-cluster-postgresql-rsm-env
optional: false
image: docker.io/apecloud/pgbouncer:1.19.0
imagePullPolicy: IfNotPresent
livenessProbe:
failureThreshold: 3
initialDelaySeconds: 15
periodSeconds: 30
successThreshold: 1
tcpSocket:
port: tcp-pgbouncer
timeoutSeconds: 5
name: pgbouncer
ports:
- containerPort: 6432
name: tcp-pgbouncer
protocol: TCP
readinessProbe:
failureThreshold: 3
initialDelaySeconds: 15
periodSeconds: 30
successThreshold: 1
tcpSocket:
port: tcp-pgbouncer
timeoutSeconds: 5
resources:
limits:
cpu: "0"
memory: "0"
securityContext:
runAsUser: 0
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /home/pgbouncer/conf
name: pgbouncer-config
- mountPath: /kb-scripts
name: scripts
- command:
- /bin/agamotto
- --config=/opt/agamotto/agamotto-config.yaml
env:
- name: KB_POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
- name: KB_POD_UID
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.uid
- name: KB_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: KB_SA_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.serviceAccountName
- name: KB_NODENAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.nodeName
- name: KB_HOST_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.hostIP
- name: KB_POD_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: KB_POD_IPS
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIPs
- name: KB_HOSTIP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.hostIP
- name: KB_PODIP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: KB_PODIPS
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIPs
- name: KB_POD_FQDN
value: $(KB_POD_NAME).postgres-cluster-postgresql-headless.$(KB_NAMESPACE).svc
- name: ENDPOINT
value: 127.0.0.1:5432
- name: DATA_SOURCE_PASS
valueFrom:
secretKeyRef:
key: password
name: postgres-cluster-conn-credential
optional: false
- name: DATA_SOURCE_USER
valueFrom:
secretKeyRef:
key: username
name: postgres-cluster-conn-credential
optional: false
envFrom:
- configMapRef:
name: postgres-cluster-postgresql-env
optional: false
- configMapRef:
name: postgres-cluster-postgresql-rsm-env
optional: false
image: infracreate-registry.cn-zhangjiakou.cr.aliyuncs.com/apecloud/agamotto:0.1.2-beta.1
imagePullPolicy: IfNotPresent
name: metrics
ports:
- containerPort: 9187
name: http-metrics
protocol: TCP
resources:
limits:
cpu: "0"
memory: "0"
securityContext:
runAsUser: 0
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /opt/conf
name: postgresql-custom-metrics
- mountPath: /opt/agamotto
name: agamotto-configuration
- command:
- lorry
- --port
- "3501"
- --grpcport
- "50001"
env:
- name: KB_POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
- name: KB_POD_UID
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.uid
- name: KB_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: KB_SA_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.serviceAccountName
- name: KB_NODENAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.nodeName
- name: KB_HOST_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.hostIP
- name: KB_POD_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: KB_POD_IPS
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIPs
- name: KB_HOSTIP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.hostIP
- name: KB_PODIP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: KB_PODIPS
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIPs
- name: KB_POD_FQDN
value: $(KB_POD_NAME).postgres-cluster-postgresql-headless.$(KB_NAMESPACE).svc
- name: KB_BUILTIN_HANDLER
value: postgresql
- name: KB_SERVICE_USER
valueFrom:
secretKeyRef:
key: username
name: postgres-cluster-conn-credential
- name: KB_SERVICE_PASSWORD
valueFrom:
secretKeyRef:
key: password
name: postgres-cluster-conn-credential
- name: KB_SERVICE_PORT
value: "5432"
- name: KB_DATA_PATH
value: /home/postgres/pgdata
- name: KB_RSM_ACTION_SVC_LIST
value: "null"
- name: KB_RSM_ROLE_UPDATE_MECHANISM
value: DirectAPIServerEventUpdate
- name: KB_RSM_ROLE_PROBE_TIMEOUT
value: "1"
- name: KB_CLUSTER_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.labels['app.kubernetes.io/instance']
- name: KB_COMP_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.labels['apps.kubeblocks.io/component-name']
- name: KB_SERVICE_CHARACTER_TYPE
value: postgresql
envFrom:
- configMapRef:
name: postgres-cluster-postgresql-env
optional: false
- configMapRef:
name: postgres-cluster-postgresql-rsm-env
optional: false
image: docker.io/apecloud/kubeblocks-tools:0.8.3
imagePullPolicy: IfNotPresent
name: lorry
ports:
- containerPort: 3501
name: lorry-http-port
protocol: TCP
- containerPort: 50001
name: lorry-grpc-port
protocol: TCP
readinessProbe:
failureThreshold: 3
httpGet:
path: /v1.0/checkrole
port: 3501
scheme: HTTP
periodSeconds: 1
successThreshold: 1
timeoutSeconds: 1
resources:
limits:
cpu: "0"
memory: "0"
startupProbe:
failureThreshold: 3
periodSeconds: 10
successThreshold: 1
tcpSocket:
port: 3501
timeoutSeconds: 1
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /home/postgres/pgdata
name: data
- args:
- PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$(TOOLS_PATH)
- /bin/reloader
- --log-level
- info
- --operator-update-enable
- --tcp
- "9901"
- --config
- /opt/config-manager/config-manager.yaml
command:
- env
env:
- name: KB_POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
- name: KB_POD_UID
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.uid
- name: KB_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: KB_SA_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.serviceAccountName
- name: KB_NODENAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.nodeName
- name: KB_HOST_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.hostIP
- name: KB_POD_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: KB_POD_IPS
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIPs
- name: KB_HOSTIP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.hostIP
- name: KB_PODIP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: KB_PODIPS
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIPs
- name: KB_POD_FQDN
value: $(KB_POD_NAME).postgres-cluster-postgresql-headless.$(KB_NAMESPACE).svc
- name: CONFIG_MANAGER_POD_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: DB_TYPE
value: postgresql
- name: TOOLS_PATH
value: /opt/kb-tools/reload/postgresql-configuration:/opt/config-manager
envFrom:
- configMapRef:
name: postgres-cluster-postgresql-env
optional: false
- configMapRef:
name: postgres-cluster-postgresql-rsm-env
optional: false
image: docker.io/apecloud/kubeblocks-tools:0.8.3
imagePullPolicy: IfNotPresent
name: config-manager
resources:
limits:
cpu: "0"
memory: "0"
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /home/postgres/conf
name: postgresql-config
- mountPath: /opt/kb-tools/reload/postgresql-configuration
name: cm-script-postgresql-configuration
- mountPath: /opt/config-manager
name: config-manager-config
dnsPolicy: ClusterFirst
initContainers:
- command:
- /kb-scripts/init_container.sh
env:
- name: KB_POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
- name: KB_POD_UID
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.uid
- name: KB_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: KB_SA_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.serviceAccountName
- name: KB_NODENAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.nodeName
- name: KB_HOST_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.hostIP
- name: KB_POD_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: KB_POD_IPS
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIPs
- name: KB_HOSTIP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.hostIP
- name: KB_PODIP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: KB_PODIPS
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIPs
- name: KB_POD_FQDN
value: $(KB_POD_NAME).postgres-cluster-postgresql-headless.$(KB_NAMESPACE).svc
envFrom:
- configMapRef:
name: postgres-cluster-postgresql-env
optional: false
image: docker.io/apecloud/spilo:12.14.0-pgvector-v0.6.1
imagePullPolicy: IfNotPresent
name: pg-init-container
resources:
limits:
cpu: "0"
memory: "0"
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /home/postgres/pgdata
name: data
- mountPath: /home/postgres/conf
name: postgresql-config
- mountPath: /kb-scripts
name: scripts
- mountPath: /kb-podinfo
name: pod-info
restartPolicy: Always
schedulerName: default-scheduler
securityContext:
fsGroup: 103
fsGroupChangePolicy: OnRootMismatch
runAsGroup: 103
runAsUser: 0
serviceAccount: kb-postgres-cluster
serviceAccountName: kb-postgres-cluster
terminationGracePeriodSeconds: 30
tolerations:
- effect: NoSchedule
key: kb-data
operator: Equal
value: "true"
volumes:
- emptyDir:
medium: Memory
sizeLimit: 644245094400m
name: dshm
- downwardAPI:
defaultMode: 420
items:
- fieldRef:
apiVersion: v1
fieldPath: metadata.labels['kubeblocks.io/role']
path: pod-role
- fieldRef:
apiVersion: v1
fieldPath: metadata.annotations['rs.apps.kubeblocks.io/primary']
path: primary-pod
- fieldRef:
apiVersion: v1
fieldPath: metadata.annotations['apps.kubeblocks.io/component-replicas']
path: component-replicas
name: pod-info
- configMap:
defaultMode: 511
name: postgres-cluster-postgresql-agamotto-configuration
name: agamotto-configuration
- configMap:
defaultMode: 292
name: postgres-cluster-postgresql-pgbouncer-configuration
name: pgbouncer-config
- configMap:
defaultMode: 511
name: postgres-cluster-postgresql-postgresql-configuration
name: postgresql-config
- configMap:
defaultMode: 511
name: postgres-cluster-postgresql-postgresql-custom-metrics
name: postgresql-custom-metrics
- configMap:
defaultMode: 365
name: postgres-cluster-postgresql-postgresql-scripts
name: scripts
- configMap:
defaultMode: 493
name: sidecar-patroni-reload-script-postgres-cluster
name: cm-script-postgresql-configuration
- configMap:
defaultMode: 493
name: sidecar-postgres-cluster-postgresql-config-manager-config
name: config-manager-config
- emptyDir: {}
name: data
updateStrategy:
type: OnDelete
volumeClaimTemplates:
- apiVersion: v1
kind: PersistentVolumeClaim
metadata:
creationTimestamp: null
labels:
apps.kubeblocks.io/vct-name: data
kubeblocks.io/volume-type: data
name: data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 3Gi
storageClassName: kb-default-sc
volumeMode: Filesystem
status:
phase: Pending
status:
availableReplicas: 3
collisionCount: 0
currentRevision: postgres-cluster-postgresql-589796456c
observedGeneration: 8
readyReplicas: 3
replicas: 3
updateRevision: postgres-cluster-postgresql-9867cf49f
updatedReplicas: 3
get pg upgrade after cluster yaml
apiVersion: apps.kubeblocks.io/v1alpha1
kind: Cluster
metadata:
annotations:
kubeblocks.io/reconcile: "2024-06-19T06:53:52.035009079Z"
creationTimestamp: "2024-06-19T06:13:55Z"
finalizers:
- cluster.kubeblocks.io/finalizer
generation: 10
labels:
app.kubernetes.io/instance: postgres-cluster
clusterdefinition.kubeblocks.io/name: postgresql
clusterversion.kubeblocks.io/name: postgresql-12.14.0-pgvector-v0.6.1
name: postgres-cluster
namespace: ns-cluster
resourceVersion: "981306"
uid: 4e6980d5-7358-4bb2-b9c7-43c4153e9919
spec:
affinity:
podAntiAffinity: Preferred
tenancy: SharedNode
clusterDefinitionRef: postgresql
clusterVersionRef: postgresql-12.14.0-pgvector-v0.6.1
componentSpecs:
- classDefRef:
class: ""
componentDefRef: postgresql
enabledLogs:
- running
monitor: true
name: postgresql
replicas: 3
resources:
limits:
cpu: 200m
memory: 644245094400m
requests:
cpu: 200m
memory: 644245094400m
serviceAccountName: kb-postgres-cluster
switchPolicy:
type: Noop
volumeClaimTemplates:
- name: data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 3Gi
resources:
cpu: "0"
memory: "0"
services:
- componentSelector: postgresql
name: postgresql-internet
roleSelector: primary
serviceName: postgresql-internet
spec:
ports:
- name: tcp-postgresql
nodePort: 31138
port: 5432
protocol: TCP
targetPort: tcp-postgresql
- name: tcp-pgbouncer
nodePort: 31899
port: 6432
protocol: TCP
targetPort: tcp-pgbouncer
type: LoadBalancer
storage:
size: "0"
terminationPolicy: WipeOut
status:
clusterDefGeneration: 2
components:
postgresql:
phase: Running
podsReady: true
podsReadyTime: "2024-06-19T06:55:17Z"
conditions:
- lastTransitionTime: "2024-06-19T06:13:57Z"
message: 'The operator has started the provisioning of Cluster: postgres-cluster'
observedGeneration: 10
reason: PreCheckSucceed
status: "True"
type: ProvisioningStarted
- lastTransitionTime: "2024-06-19T07:04:17Z"
message: Successfully applied for resources
observedGeneration: 10
reason: ApplyResourcesSucceed
status: "True"
type: ApplyResources
- lastTransitionTime: "2024-06-19T06:55:17Z"
message: all pods of components are ready, waiting for the probe detection successful
reason: AllReplicasReady
status: "True"
type: ReplicasReady
- lastTransitionTime: "2024-06-19T06:55:17Z"
message: 'Cluster: postgres-cluster is ready, current phase is Running'
reason: ClusterReady
status: "True"
type: Ready
observedGeneration: 10
phase: Running
component yaml
apiVersion: apps.kubeblocks.io/v1alpha1
kind: Component
metadata:
annotations:
kubeblocks.io/generation: "10"
creationTimestamp: "2024-06-19T06:13:57Z"
finalizers:
- cluster.kubeblocks.io/finalizer
- component.kubeblocks.io/finalizer
generation: 6
labels:
app.kubernetes.io/instance: postgres-cluster
app.kubernetes.io/managed-by: kubeblocks
apps.kubeblocks.io/cluster-uid: 4e6980d5-7358-4bb2-b9c7-43c4153e9919
apps.kubeblocks.io/component-name: postgresql
clusterdefinition.kubeblocks.io/name: postgresql
clusterversion.kubeblocks.io/name: postgresql-12.14.0-pgvector-v0.6.1
name: postgres-cluster-postgresql
namespace: ns-cluster
ownerReferences:
- apiVersion: apps.kubeblocks.io/v1alpha1
blockOwnerDeletion: true
controller: true
kind: Cluster
name: postgres-cluster
uid: 4e6980d5-7358-4bb2-b9c7-43c4153e9919
resourceVersion: "981215"
uid: cc48cd68-00c2-488d-ba37-5c99e5a9c347
spec:
affinity:
podAntiAffinity: Preferred
tenancy: SharedNode
classDefRef:
class: ""
compDef: ""
enabledLogs:
- running
replicas: 3
resources:
limits:
cpu: 200m
memory: 644245094400m
requests:
cpu: 200m
memory: 644245094400m
serviceAccountName: kb-postgres-cluster
tolerations:
- effect: NoSchedule
key: kb-data
operator: Equal
value: "true"
volumeClaimTemplates:
- name: data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 3Gi
status:
conditions:
- lastTransitionTime: "2024-06-19T06:14:10Z"
message: 'The operator has started the provisioning of Cluster: postgres-cluster-postgresql'
observedGeneration: 6
reason: PreCheckSucceed
status: "True"
type: ProvisioningStarted
observedGeneration: 6
phase: Running
sts yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
annotations:
config.kubeblocks.io/tpl-agamotto-configuration: postgres-cluster-postgresql-agamotto-configuration
config.kubeblocks.io/tpl-pgbouncer-configuration: postgres-cluster-postgresql-pgbouncer-configuration
config.kubeblocks.io/tpl-postgresql-configuration: postgres-cluster-postgresql-postgresql-configuration
config.kubeblocks.io/tpl-postgresql-custom-metrics: postgres-cluster-postgresql-postgresql-custom-metrics
config.kubeblocks.io/tpl-postgresql-scripts: postgres-cluster-postgresql-postgresql-scripts
kubeblocks.io/generation: "10"
creationTimestamp: "2024-06-19T06:14:27Z"
finalizers:
- cluster.kubeblocks.io/finalizer
generation: 8
labels:
app.kubernetes.io/component: postgresql
app.kubernetes.io/instance: postgres-cluster
app.kubernetes.io/managed-by: kubeblocks
app.kubernetes.io/name: postgresql
apps.kubeblocks.io/component-name: postgresql
rsm.workloads.kubeblocks.io/controller-generation: "8"
name: postgres-cluster-postgresql
namespace: ns-cluster
resourceVersion: "982037"
uid: 36f67384-fc3e-48da-94db-49acc956639f
spec:
persistentVolumeClaimRetentionPolicy:
whenDeleted: Retain
whenScaled: Retain
podManagementPolicy: Parallel
replicas: 3
revisionHistoryLimit: 10
selector:
matchLabels:
app.kubernetes.io/instance: postgres-cluster
app.kubernetes.io/managed-by: kubeblocks
app.kubernetes.io/name: postgresql
apps.kubeblocks.io/component-name: postgresql
serviceName: postgres-cluster-postgresql-headless
template:
metadata:
annotations:
config.kubeblocks.io/restart-postgresql-configuration: 64bf895d5d
kubeblocks.io/restart: "2024-06-19T06:34:46Z"
creationTimestamp: null
labels:
app.kubernetes.io/component: postgresql
app.kubernetes.io/instance: postgres-cluster
app.kubernetes.io/managed-by: kubeblocks
app.kubernetes.io/name: postgresql
app.kubernetes.io/version: ""
apps.kubeblocks.io/component-name: postgresql
spec:
affinity:
nodeAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- preference:
matchExpressions:
- key: kb-data
operator: In
values:
- "true"
weight: 100
podAntiAffinity: {}
containers:
- command:
- /kb-scripts/setup.sh
env:
- name: KB_POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
- name: KB_POD_UID
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.uid
- name: KB_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: KB_SA_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.serviceAccountName
- name: KB_NODENAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.nodeName
- name: KB_HOST_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.hostIP
- name: KB_POD_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: KB_POD_IPS
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIPs
- name: KB_HOSTIP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.hostIP
- name: KB_PODIP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: KB_PODIPS
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIPs
- name: KB_POD_FQDN
value: $(KB_POD_NAME).postgres-cluster-postgresql-headless.$(KB_NAMESPACE).svc
- name: SERVICE_PORT
value: "5432"
- name: DCS_ENABLE_KUBERNETES_API
value: "true"
- name: KUBERNETES_USE_CONFIGMAPS
value: "true"
- name: SCOPE
value: $(KB_CLUSTER_NAME)-$(KB_COMP_NAME)-patroni$(KB_CLUSTER_UID_POSTFIX_8)
- name: KUBERNETES_SCOPE_LABEL
value: apps.kubeblocks.postgres.patroni/scope
- name: KUBERNETES_ROLE_LABEL
value: apps.kubeblocks.postgres.patroni/role
- name: KUBERNETES_LABELS
value: '{"app.kubernetes.io/instance":"$(KB_CLUSTER_NAME)","apps.kubeblocks.io/component-name":"$(KB_COMP_NAME)"}'
- name: RESTORE_DATA_DIR
value: /home/postgres/pgdata/kb_restore
- name: KB_PG_CONFIG_PATH
value: /home/postgres/conf/postgresql.conf
- name: SPILO_CONFIGURATION
value: |
bootstrap:
initdb:
- auth-host: md5
- auth-local: trust
- name: ALLOW_NOSSL
value: "true"
- name: PGROOT
value: /home/postgres/pgdata/pgroot
- name: POD_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: POD_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: PGUSER_SUPERUSER
valueFrom:
secretKeyRef:
key: username
name: postgres-cluster-conn-credential
optional: false
- name: PGPASSWORD_SUPERUSER
valueFrom:
secretKeyRef:
key: password
name: postgres-cluster-conn-credential
optional: false
- name: PGUSER_ADMIN
value: superadmin
- name: PGPASSWORD_ADMIN
valueFrom:
secretKeyRef:
key: password
name: postgres-cluster-conn-credential
optional: false
- name: PGUSER_STANDBY
value: standby
- name: PGPASSWORD_STANDBY
valueFrom:
secretKeyRef:
key: password
name: postgres-cluster-conn-credential
optional: false
- name: PGUSER
valueFrom:
secretKeyRef:
key: username
name: postgres-cluster-conn-credential
optional: false
- name: PGPASSWORD
valueFrom:
secretKeyRef:
key: password
name: postgres-cluster-conn-credential
optional: false
envFrom:
- configMapRef:
name: postgres-cluster-postgresql-env
optional: false
- configMapRef:
name: postgres-cluster-postgresql-rsm-env
optional: false
image: docker.io/apecloud/spilo:12.14.0-pgvector-v0.6.1
imagePullPolicy: IfNotPresent
name: postgresql
ports:
- containerPort: 5432
name: tcp-postgresql
protocol: TCP
- containerPort: 8008
name: patroni
protocol: TCP
readinessProbe:
exec:
command:
- /bin/sh
- -c
- -ee
- |
exec pg_isready -U "postgres" -h 127.0.0.1 -p 5432
[ -f /postgresql/tmp/.initialized ] || [ -f /postgresql/.initialized ]
failureThreshold: 3
initialDelaySeconds: 10
periodSeconds: 30
successThreshold: 1
timeoutSeconds: 5
resources:
limits:
cpu: 200m
memory: 644245094400m
requests:
cpu: 200m
memory: 644245094400m
securityContext:
runAsUser: 0
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /dev/shm
name: dshm
- mountPath: /home/postgres/pgdata
name: data
- mountPath: /home/postgres/conf
name: postgresql-config
- mountPath: /kb-scripts
name: scripts
- mountPath: /kb-podinfo
name: pod-info
- command:
- /kb-scripts/pgbouncer_setup.sh
env:
- name: KB_POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
- name: KB_POD_UID
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.uid
- name: KB_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: KB_SA_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.serviceAccountName
- name: KB_NODENAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.nodeName
- name: KB_HOST_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.hostIP
- name: KB_POD_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: KB_POD_IPS
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIPs
- name: KB_HOSTIP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.hostIP
- name: KB_PODIP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: KB_PODIPS
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIPs
- name: KB_POD_FQDN
value: $(KB_POD_NAME).postgres-cluster-postgresql-headless.$(KB_NAMESPACE).svc
- name: PGBOUNCER_AUTH_TYPE
value: md5
- name: POSTGRESQL_USERNAME
valueFrom:
secretKeyRef:
key: username
name: postgres-cluster-conn-credential
optional: false
- name: POSTGRESQL_PASSWORD
valueFrom:
secretKeyRef:
key: password
name: postgres-cluster-conn-credential
optional: false
- name: POSTGRESQL_PORT
value: "5432"
- name: POSTGRESQL_HOST
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: PGBOUNCER_PORT
value: "6432"
- name: PGBOUNCER_BIND_ADDRESS
value: 0.0.0.0
envFrom:
- configMapRef:
name: postgres-cluster-postgresql-env
optional: false
- configMapRef:
name: postgres-cluster-postgresql-rsm-env
optional: false
image: docker.io/apecloud/pgbouncer:1.19.0
imagePullPolicy: IfNotPresent
livenessProbe:
failureThreshold: 3
initialDelaySeconds: 15
periodSeconds: 30
successThreshold: 1
tcpSocket:
port: tcp-pgbouncer
timeoutSeconds: 5
name: pgbouncer
ports:
- containerPort: 6432
name: tcp-pgbouncer
protocol: TCP
readinessProbe:
failureThreshold: 3
initialDelaySeconds: 15
periodSeconds: 30
successThreshold: 1
tcpSocket:
port: tcp-pgbouncer
timeoutSeconds: 5
resources:
limits:
cpu: "0"
memory: "0"
securityContext:
runAsUser: 0
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /home/pgbouncer/conf
name: pgbouncer-config
- mountPath: /kb-scripts
name: scripts
- command:
- /bin/agamotto
- --config=/opt/agamotto/agamotto-config.yaml
env:
- name: KB_POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
- name: KB_POD_UID
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.uid
- name: KB_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: KB_SA_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.serviceAccountName
- name: KB_NODENAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.nodeName
- name: KB_HOST_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.hostIP
- name: KB_POD_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: KB_POD_IPS
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIPs
- name: KB_HOSTIP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.hostIP
- name: KB_PODIP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: KB_PODIPS
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIPs
- name: KB_POD_FQDN
value: $(KB_POD_NAME).postgres-cluster-postgresql-headless.$(KB_NAMESPACE).svc
- name: ENDPOINT
value: 127.0.0.1:5432
- name: DATA_SOURCE_PASS
valueFrom:
secretKeyRef:
key: password
name: postgres-cluster-conn-credential
optional: false
- name: DATA_SOURCE_USER
valueFrom:
secretKeyRef:
key: username
name: postgres-cluster-conn-credential
optional: false
envFrom:
- configMapRef:
name: postgres-cluster-postgresql-env
optional: false
- configMapRef:
name: postgres-cluster-postgresql-rsm-env
optional: false
image: infracreate-registry.cn-zhangjiakou.cr.aliyuncs.com/apecloud/agamotto:0.1.2-beta.1
imagePullPolicy: IfNotPresent
name: metrics
ports:
- containerPort: 9187
name: http-metrics
protocol: TCP
resources:
limits:
cpu: "0"
memory: "0"
securityContext:
runAsUser: 0
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /opt/conf
name: postgresql-custom-metrics
- mountPath: /opt/agamotto
name: agamotto-configuration
- command:
- lorry
- --port
- "3501"
- --grpcport
- "50001"
env:
- name: KB_POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
- name: KB_POD_UID
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.uid
- name: KB_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: KB_SA_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.serviceAccountName
- name: KB_NODENAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.nodeName
- name: KB_HOST_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.hostIP
- name: KB_POD_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: KB_POD_IPS
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIPs
- name: KB_HOSTIP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.hostIP
- name: KB_PODIP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: KB_PODIPS
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIPs
- name: KB_POD_FQDN
value: $(KB_POD_NAME).postgres-cluster-postgresql-headless.$(KB_NAMESPACE).svc
- name: KB_BUILTIN_HANDLER
value: postgresql
- name: KB_SERVICE_USER
valueFrom:
secretKeyRef:
key: username
name: postgres-cluster-conn-credential
- name: KB_SERVICE_PASSWORD
valueFrom:
secretKeyRef:
key: password
name: postgres-cluster-conn-credential
- name: KB_SERVICE_PORT
value: "5432"
- name: KB_DATA_PATH
value: /home/postgres/pgdata
- name: KB_RSM_ACTION_SVC_LIST
value: "null"
- name: KB_RSM_ROLE_UPDATE_MECHANISM
value: DirectAPIServerEventUpdate
- name: KB_RSM_ROLE_PROBE_TIMEOUT
value: "1"
- name: KB_CLUSTER_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.labels['app.kubernetes.io/instance']
- name: KB_COMP_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.labels['apps.kubeblocks.io/component-name']
- name: KB_SERVICE_CHARACTER_TYPE
value: postgresql
envFrom:
- configMapRef:
name: postgres-cluster-postgresql-env
optional: false
- configMapRef:
name: postgres-cluster-postgresql-rsm-env
optional: false
image: docker.io/apecloud/kubeblocks-tools:0.8.3
imagePullPolicy: IfNotPresent
name: lorry
ports:
- containerPort: 3501
name: lorry-http-port
protocol: TCP
- containerPort: 50001
name: lorry-grpc-port
protocol: TCP
readinessProbe:
failureThreshold: 3
httpGet:
path: /v1.0/checkrole
port: 3501
scheme: HTTP
periodSeconds: 1
successThreshold: 1
timeoutSeconds: 1
resources:
limits:
cpu: "0"
memory: "0"
startupProbe:
failureThreshold: 3
periodSeconds: 10
successThreshold: 1
tcpSocket:
port: 3501
timeoutSeconds: 1
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /home/postgres/pgdata
name: data
- args:
- PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$(TOOLS_PATH)
- /bin/reloader
- --log-level
- info
- --operator-update-enable
- --tcp
- "9901"
- --config
- /opt/config-manager/config-manager.yaml
command:
- env
env:
- name: KB_POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
- name: KB_POD_UID
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.uid
- name: KB_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: KB_SA_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.serviceAccountName
- name: KB_NODENAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.nodeName
- name: KB_HOST_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.hostIP
- name: KB_POD_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: KB_POD_IPS
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIPs
- name: KB_HOSTIP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.hostIP
- name: KB_PODIP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: KB_PODIPS
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIPs
- name: KB_POD_FQDN
value: $(KB_POD_NAME).postgres-cluster-postgresql-headless.$(KB_NAMESPACE).svc
- name: CONFIG_MANAGER_POD_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: DB_TYPE
value: postgresql
- name: TOOLS_PATH
value: /opt/kb-tools/reload/postgresql-configuration:/opt/config-manager
envFrom:
- configMapRef:
name: postgres-cluster-postgresql-env
optional: false
- configMapRef:
name: postgres-cluster-postgresql-rsm-env
optional: false
image: docker.io/apecloud/kubeblocks-tools:0.8.3
imagePullPolicy: IfNotPresent
name: config-manager
resources:
limits:
cpu: "0"
memory: "0"
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /home/postgres/conf
name: postgresql-config
- mountPath: /opt/kb-tools/reload/postgresql-configuration
name: cm-script-postgresql-configuration
- mountPath: /opt/config-manager
name: config-manager-config
dnsPolicy: ClusterFirst
initContainers:
- command:
- /kb-scripts/init_container.sh
env:
- name: KB_POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
- name: KB_POD_UID
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.uid
- name: KB_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: KB_SA_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.serviceAccountName
- name: KB_NODENAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.nodeName
- name: KB_HOST_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.hostIP
- name: KB_POD_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: KB_POD_IPS
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIPs
- name: KB_HOSTIP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.hostIP
- name: KB_PODIP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: KB_PODIPS
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIPs
- name: KB_POD_FQDN
value: $(KB_POD_NAME).postgres-cluster-postgresql-headless.$(KB_NAMESPACE).svc
envFrom:
- configMapRef:
name: postgres-cluster-postgresql-env
optional: false
image: docker.io/apecloud/spilo:12.14.0-pgvector-v0.6.1
imagePullPolicy: IfNotPresent
name: pg-init-container
resources:
limits:
cpu: "0"
memory: "0"
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /home/postgres/pgdata
name: data
- mountPath: /home/postgres/conf
name: postgresql-config
- mountPath: /kb-scripts
name: scripts
- mountPath: /kb-podinfo
name: pod-info
restartPolicy: Always
schedulerName: default-scheduler
securityContext:
fsGroup: 103
fsGroupChangePolicy: OnRootMismatch
runAsGroup: 103
runAsUser: 0
serviceAccount: kb-postgres-cluster
serviceAccountName: kb-postgres-cluster
terminationGracePeriodSeconds: 30
tolerations:
- effect: NoSchedule
key: kb-data
operator: Equal
value: "true"
volumes:
- emptyDir:
medium: Memory
sizeLimit: 644245094400m
name: dshm
- downwardAPI:
defaultMode: 420
items:
- fieldRef:
apiVersion: v1
fieldPath: metadata.labels['kubeblocks.io/role']
path: pod-role
- fieldRef:
apiVersion: v1
fieldPath: metadata.annotations['rs.apps.kubeblocks.io/primary']
path: primary-pod
- fieldRef:
apiVersion: v1
fieldPath: metadata.annotations['apps.kubeblocks.io/component-replicas']
path: component-replicas
name: pod-info
- configMap:
defaultMode: 511
name: postgres-cluster-postgresql-agamotto-configuration
name: agamotto-configuration
- configMap:
defaultMode: 292
name: postgres-cluster-postgresql-pgbouncer-configuration
name: pgbouncer-config
- configMap:
defaultMode: 511
name: postgres-cluster-postgresql-postgresql-configuration
name: postgresql-config
- configMap:
defaultMode: 511
name: postgres-cluster-postgresql-postgresql-custom-metrics
name: postgresql-custom-metrics
- configMap:
defaultMode: 365
name: postgres-cluster-postgresql-postgresql-scripts
name: scripts
- configMap:
defaultMode: 493
name: sidecar-patroni-reload-script-postgres-cluster
name: cm-script-postgresql-configuration
- configMap:
defaultMode: 493
name: sidecar-postgres-cluster-postgresql-config-manager-config
name: config-manager-config
- emptyDir: {}
name: data
updateStrategy:
type: OnDelete
volumeClaimTemplates:
- apiVersion: v1
kind: PersistentVolumeClaim
metadata:
creationTimestamp: null
labels:
apps.kubeblocks.io/vct-name: data
kubeblocks.io/volume-type: data
name: data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 3Gi
storageClassName: kb-default-sc
volumeMode: Filesystem
status:
phase: Pending
status:
availableReplicas: 3
collisionCount: 0
currentRevision: postgres-cluster-postgresql-589796456c
observedGeneration: 8
readyReplicas: 3
replicas: 3
updateRevision: postgres-cluster-postgresql-9867cf49f
updatedReplicas: 3
Expected behavior A clear and concise description of what you expected to happen.
Screenshots If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
- OS: [e.g. iOS]
- Browser [e.g. chrome, safari]
- Version [e.g. 22]
kbcli version
Kubernetes: v1.27.13-gke.1070000
KubeBlocks: 0.9.0-beta.33
kbcli: 0.9.0-beta.27
Additional context Add any other context about the problem here.
kafka cluster diff cluster
diff 0.8.3/cluster/cluster-kafka-cluster.yaml 0.9.0/cluster/cluster-kafka-cluster.yaml
14c14
< generation: 7
---
> generation: 8
23c23
< resourceVersion: "770168"
---
> resourceVersion: "981811"
38d37
< noCreatePDB: false
47c46
< rsmTransformPolicy: ToSts
---
> serviceVersion: 3.3.2
63d61
< monitor: {}
91c89
< observedGeneration: 7
---
> observedGeneration: 8
97c95
< observedGeneration: 7
---
> observedGeneration: 8
111c109
< observedGeneration: 7
---
> observedGeneration: 8
diff component
➜ ~ diff 0.8.3/component/component-kafka-cluster-broker.yaml 0.9.0/component/component-kafka-cluster-broker.yaml
5c5,11
< kubeblocks.io/generation: "7"
---
> apps.kubeblocks.io/multi-cluster-placement: ""
> kubeblocks.io/enabled-pod-ordinal-svc: broker
> kubeblocks.io/extra-env: '{"KB_KAFKA_ENABLE_SASL":"false","KB_KAFKA_BROKER_HEAP":"-XshowSettings:vm
> -XX:MaxRAMPercentage=100 -Ddepth=64","KB_KAFKA_CONTROLLER_HEAP":"-XshowSettings:vm
> -XX:MaxRAMPercentage=100 -Ddepth=64","KB_KAFKA_PUBLIC_ACCESS":"false", "KB_KAFKA_BROKER_NODEPORT":
> "false"}'
> kubeblocks.io/generation: "8"
9c15,16
< generation: 5
---
> - component.kubeblocks.io/finalizer
> generation: 6
28c35
< resourceVersion: "769938"
---
> resourceVersion: "984408"
37c44
< monitor: true
---
> disableExporter: false
46c53
< rsmTransformPolicy: ToSts
---
> serviceVersion: 3.3.2
71c78
< observedGeneration: 5
---
> observedGeneration: 6
75c82
< observedGeneration: 5
---
> observedGeneration: 6
diff sts with its
➜ ~ diff 0.8.3/sts/sts-kafka-cluster-broker.yaml 0.9.0/its/its-kafka-cluster-broker.yaml
1,2c1,2
< apiVersion: apps/v1
< kind: StatefulSet
---
> apiVersion: workloads.kubeblocks.io/v1alpha1
> kind: InstanceSet
4a5,7
> app.kubernetes.io/component: kafka-combine
> apps.kubeblocks.io/multi-cluster-placement: ""
> apps.kubeblocks.io/service-version: 3.3.2
9,10c12,22
< kubeblocks.io/generation: "7"
< creationTimestamp: "2024-06-19T06:12:21Z"
---
> kubeblocks.io/enabled-pod-ordinal-svc: broker
> kubeblocks.io/extra-env: '{"KB_KAFKA_ENABLE_SASL":"false","KB_KAFKA_BROKER_HEAP":"-XshowSettings:vm
> -XX:MaxRAMPercentage=100 -Ddepth=64","KB_KAFKA_CONTROLLER_HEAP":"-XshowSettings:vm
> -XX:MaxRAMPercentage=100 -Ddepth=64","KB_KAFKA_PUBLIC_ACCESS":"false", "KB_KAFKA_BROKER_NODEPORT":
> "false"}'
> kubeblocks.io/generation: "8"
> monitor.kubeblocks.io/path.headless.its: /metrics
> monitor.kubeblocks.io/port.headless.its: "5556"
> monitor.kubeblocks.io/scheme.headless.its: http
> monitor.kubeblocks.io/scrape.headless.its: "true"
> creationTimestamp: "2024-06-19T09:54:36Z"
12,13c24,26
< - cluster.kubeblocks.io/finalizer
< generation: 6
---
> - component.kubeblocks.io/finalizer
> - instanceset.workloads.kubeblocks.io/finalizer
> generation: 1
18a32
> apps.kubeblocks.io/cluster-uid: 186badad-bdaf-4a42-9ff9-4e19176c81e5
20c34,37
< rsm.workloads.kubeblocks.io/controller-generation: "6"
---
> clusterdefinition.kubeblocks.io/name: kafka
> clusterversion.kubeblocks.io/name: kafka-3.3.2
> componentdefinition.kubeblocks.io/name: kafka-combine
> helm.sh/chart: kafka-cluster-0.8.1
24c41
< - apiVersion: workloads.kubeblocks.io/v1alpha1
---
> - apiVersion: apps.kubeblocks.io/v1alpha1
27c44
< kind: ReplicatedStateMachine
---
> kind: Component
29,31c46,48
< uid: f17c59b1-f507-4a25-80a3-5a41b763d712
< resourceVersion: "768898"
< uid: 2f9ff28a-6847-4738-8faf-89d9cd0d9778
---
> uid: 750c8a0e-024d-4ac1-9bed-e8e086c448fe
> resourceVersion: "984645"
> uid: dbcc0071-a991-4f55-a400-a68ad25c4861
33,35c50,51
< persistentVolumeClaimRetentionPolicy:
< whenDeleted: Retain
< whenScaled: Retain
---
> memberUpdateStrategy: BestEffortParallel
> minReadySeconds: 0
38d53
< revisionHistoryLimit: 10
45d59
< serviceName: kafka-cluster-broker-headless
49,51c63
< config.kubeblocks.io/restart-kafka-configuration-tpl: 7588b89999
< kubeblocks.io/restart: "2024-06-19T06:25:23Z"
< creationTimestamp: null
---
> apps.kubeblocks.io/component-replicas: "1"
57a70
> apps.kubeblocks.io/cluster-uid: 186badad-bdaf-4a42-9ff9-4e19176c81e5
58a72,75
> clusterdefinition.kubeblocks.io/name: kafka
> clusterversion.kubeblocks.io/name: kafka-3.3.2
> componentdefinition.kubeblocks.io/name: kafka-combine
> helm.sh/chart: kafka-cluster-0.8.1
183,185d199
< - configMapRef:
< name: kafka-cluster-broker-rsm-env
< optional: false
226,227d239
< terminationMessagePath: /dev/termination-log
< terminationMessagePolicy: File
323,325d334
< - configMapRef:
< name: kafka-cluster-broker-rsm-env
< optional: false
340,341d348
< terminationMessagePath: /dev/termination-log
< terminationMessagePolicy: File
345,347d351
< dnsPolicy: ClusterFirst
< restartPolicy: Always
< schedulerName: default-scheduler
350d353
< terminationGracePeriodSeconds: 30
358c361
< defaultMode: 420
---
> defaultMode: 292
362c365
< defaultMode: 420
---
> defaultMode: 292
377,378c380
< updateStrategy:
< type: OnDelete
---
> updateStrategy: {}
380,383c382
< - apiVersion: v1
< kind: PersistentVolumeClaim
< metadata:
< creationTimestamp: null
---
> - metadata:
394,400c393,394
< volumeMode: Filesystem
< status:
< phase: Pending
< - apiVersion: v1
< kind: PersistentVolumeClaim
< metadata:
< creationTimestamp: null
---
> status: {}
> - metadata:
411,413c405
< volumeMode: Filesystem
< status:
< phase: Pending
---
> status: {}
416,418c408,420
< collisionCount: 0
< currentRevision: kafka-cluster-broker-78f6577899
< observedGeneration: 6
---
> conditions:
> - lastTransitionTime: "2024-06-19T09:54:40Z"
> message: ""
> observedGeneration: 1
> reason: Ready
> status: "True"
> type: InstanceReady
> currentReplicas: 1
> currentRevision: 9cf9c7468
> currentRevisions:
> kafka-cluster-broker-0: 9cf9c7468
> initReplicas: 0
> observedGeneration: 1
421c423,425
< updateRevision: kafka-cluster-broker-7d64445c9b
---
> updateRevision: 9cf9c7468
> updateRevisions:
> kafka-cluster-broker-0: 9cf9c7468
0.8-cluster-kafka-cluster.txt 0.8-component-kafka-cluster-broker.txt 0.8-sts-kafka-cluster-broker.txt
0.9-cluster-kafka-cluster.txt 0.9-component-kafka-cluster-broker.txt 0.9-its-kafka-cluster-broker.txt
Most of the clusters' sts were converted to its, but a few were not.
kubectl get sts -n ns-cluster
NAME READY AGE
orioledb-cluster-orioledb 5/5 4h15m
postgres-cluster-postgresql 3/3 4h22m
smarte-cluster-mysql 2/2 4h22m
➜ ~ kubectl get its -n ns-cluster
NAME LEADER READY REPLICAS AGE
asm-cluster-mysql 3 3 44m
camellia-cluster-proxy 4 4 43m
chouse-cluster-clickhouse 3 3 43m
etcd-cluster-etcd etcd-cluster-etcd-0 1 1 44m
etcdo-cluster-etcd etcdo-cluster-etcd-2 3 3 44m
etcdr-cluster-etcd etcdr-cluster-etcd-2 3 3 44m
flink-cluster-jobmanager 1 1 44m
flink-cluster-taskmanager 3 3 44m
foxlake-cluster-foxlake-metadb 1 1 44m
foxlake-cluster-foxlake-server 1 1 44m
ggml-cluster-ggml 1 1 44m
greptime-cluster-datanode 1 1 44m
greptime-cluster-etcd greptime-cluster-etcd-0 3 3 44m
greptime-cluster-frontend 1 1 44m
greptime-cluster-meta 1 1 44m
influx-cluster-influxdb 1 1 44m
kafka-cluster-broker 1 1 44m
mariadb-cluster-mariadb-compdef 1 1 44m
milvus-cluster-etcd 1 1 44m
milvus-cluster-milvus 1 1 44m
milvus-cluster-minio 1 1 44m
mogdb-cluster-mogdb mogdb-cluster-mogdb-0 3 3 44m
mongo-cluster-mongodb mongo-cluster-mongodb-2 3 3 44m
nebula-cluster-nebula-console 3 3 44m
nebula-cluster-nebula-graphd 1 1 44m
nebula-cluster-nebula-metad 3 3 43m
nebula-cluster-nebula-storaged 3 3 44m
obce-cluster-oceanbase 2 2 44m
ogauss-cluster-opengauss 1 1 44m
oldap-cluster-openldap-compdef 1 1 44m
omysql-cluster-mysql-compdef 1 1 44m
oracle-cluster-oracle 1 1 44m
osearch-cluster-dashboard 1 1 44m
osearch-cluster-opensearch 1 1 44m
pika-cluster-codis-dashboard 1 1 44m
pika-cluster-codis-fe 1 1 44m
pika-cluster-codis-proxy 2 2 44m
pika-cluster-etcd 3 3 44m
pika-cluster-pika-group 3 3 44m
pika-cluster-pika-group-1 1 1 44m
polardbx-cluster-cdc 1 1 44m
polardbx-cluster-cn 1 1 44m
polardbx-cluster-dn polardbx-cluster-dn-2 2 3 44m
polardbx-cluster-gms polardbx-cluster-gms-0 1 1 44m
pulsar-cluster-bookies 5 5 44m
pulsar-cluster-pulsar-broker 2 2 43m
pulsar-cluster-pulsar-proxy 1 1 43m
pulsar-cluster-zookeeper 3 3 43m
qdrant-cluster-qdrant 3 3 44m
rcluster-cluster-shard-d5n rcluster-cluster-shard-d5n-0 1 1 44m
rcluster-cluster-shard-j6b rcluster-cluster-shard-j6b-0 1 1 43m
rcluster-cluster-shard-td7 rcluster-cluster-shard-td7-0 1 1 44m
redis-cluster-redis redis-cluster-redis-0 3 3 43m
redis-cluster-redis-sentinel 3 3 44m
redis-cluster-redis-twemproxy 3 3 44m
redisc-cluster-redis redisc-cluster-redis-1 2 2 43m
redisc-cluster-redis-sentinel 3 3 44m
redisc-cluster-redis-twemproxy 3 3 44m
rswave-cluster-compactor 1 1 44m
rswave-cluster-compute 3 3 44m
rswave-cluster-connector 1 1 44m
rswave-cluster-frontend 3 3 44m
rswave-cluster-meta 1 1 44m
scale-cluster-vtcontroller 1 1 44m
scale-cluster-vtgate 1 1 44m
strsce-cluster-be 1 1 44m
strsce-cluster-fe 1 1 44m
tdengine-cluster-tdengine 3 3 44m
weaviate-cluster-weaviate 1 2 44m
zkeeper-cluster-zookeeper 1 1 44m
``