kubeblocks
kubeblocks copied to clipboard
[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.