apecloud / kubeblocks

KubeBlocks is an open-source control plane software that runs and manages databases, message queues and other stateful applications on K8s.
https://kubeblocks.io
GNU Affero General Public License v3.0
1.77k stars 156 forks source link

[BUG] upgrade kb from 0.8.3 to 0.9.0 some cluster pod restart #7533

Open JashBook opened 3 weeks ago

JashBook commented 3 weeks ago

Describe the bug

To Reproduce Steps to reproduce the behavior:

  1. 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

2. create cluster 
3. 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

4. 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"


5. 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:

component yaml

apiVersion: apps.kubeblocks.io/v1alpha1 kind: Component metadata: annotations: kubeblocks.io/generation: "10" creationTimestamp: "2024-06-19T06:13:57Z" finalizers:

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:


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:

component yaml

apiVersion: apps.kubeblocks.io/v1alpha1 kind: Component metadata: annotations: kubeblocks.io/generation: "10" creationTimestamp: "2024-06-19T06:13:57Z" finalizers:

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:


**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.
JashBook commented 2 weeks ago

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

JashBook commented 2 weeks ago

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
``