OT-CONTAINER-KIT / redis-operator

A golang based redis operator that will make/oversee Redis standalone/cluster/replication/sentinel mode setup on top of the Kubernetes.
https://ot-redis-operator.netlify.app/
Apache License 2.0
731 stars 207 forks source link

Bug Report: Redis Pods Entering Termination Loop in redis-operator v0.17.0 #932

Open wkd-woo opened 1 month ago

wkd-woo commented 1 month ago

Summary: After deploying the redis-replication Helm chart, the Redis pods continuously cycle through terminating and recreating states without any external intervention.

This issue emerged following the release of redis-operator version v0.17.0 and persists irrespective of the Redis image version used. Consequently, the redis-operator fails to reconcile properly, compromising the High Availability (HA) of the replication setup.

What version of redis operator are you using? redis-operator version: v0.17.0 redis version: v7.0.12, v7.2.3

Does this issue reproduce with the latest release? Yes, it's the latest released version.

What operating system and processor architecture are you using (kubectl version)? ubuntu22, linux/amd64

kubectl version Output
$ kubectl version
Client Version: v1.28.4
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
Server Version: v1.27.6

Steps to Reproduce:

  1. Deploy the redis-replication Helm chart.
  2. Observe the creation of the redis-replication StatefulSet and its associated pods.
  3. Note that the pods enter a continuous cycle of states: Terminating -> ContainerCreating -> Running -> Terminating.

Observed Behavior

What did you do? I just deploy redis replication via helm-chart

helm install redis-replication helm/charts/common/redis-replication -f workspace/development/manifests/ke/replication.yaml --debug

client.go:142: [debug] creating 3 resource(s)
NAME: redis-replication
LAST DEPLOYED: Fri May 17 14:56:13 2024
NAMESPACE: jude
STATUS: deployed
REVISION: 1
TEST SUITE: None

and following below is the manifest I'm using

---
redisReplication:
  name: ""
  clusterSize: 3
  image: <REGISTRY_URL>/redis
  tag: v7.0.12
  imagePullPolicy: IfNotPresent
  imagePullSecrets: []
  serviceType: ClusterIP
  resources:
    requests:
      cpu: 101m
      memory: 3Gi
    limits:
      cpu: 101m
      memory: 3Gi
  ignoreAnnotations: []

# Overwite name for resources
# name: ""

labels:
  topology: sentinel
  dbservice: redis
  servicename: jude-replication

externalConfig:
  enabled: true
  data: |
      <CONFIGURATIONS>

externalService:
  enabled: true
  serviceType: NodePort
  port: 6379

serviceMonitor:
  enabled: false
  interval: 30s
  scrapeTimeout: 10s
  namespace: monitoring

redisExporter:
  enabled: true
  image: <REGISTRY_URL>/redis-exporter
  tag: v1.44.0
  imagePullPolicy: IfNotPresent
  resources:
    requests:
      cpu: 100m
      memory: 128Mi
    limits:
      cpu: 100m
      memory: 128Mi
  env: []

initContainer:
  enabled: false
  image: ""
  imagePullPolicy: "IfNotPresent"
  resources: {}
  env: []
  command: []
  args: []

sidecars:
  name: ""
  image: ""
  imagePullPolicy: "IfNotPresent"
  resources:
    limits:
      cpu: "100m"
      memory: "128Mi"
    requests:
      cpu: "50m"
      memory: "64Mi"
  env: []

priorityClassName: ""

nodeSelector:
  kubernetes.io/arch: amd64
  kubernetes.io/os: linux
  topology: sentinel

storageSpec:
  volumeClaimTemplate:
    spec:
      storageClassName: csi-cinder-sc-delete
      accessModes: ["ReadWriteOnce"]
      resources:
        requests:
          storage: 10Gi

podSecurityContext:
  runAsUser: 1000
  fsGroup: 1000

securityContext: {}

affinity: {}

tolerations: []

TLS:
  ca: ca.key
  cert: tls.crt
  key: tls.key
  secret:
    secretName: ""

acl:
  secret:
    # secretName: "redis-acl"

env: []

What did you see instead?

$ k get all
NAME                      READY   STATUS        RESTARTS   AGE
pod/redis-replication-0   2/2     Running       0          5m37s
pod/redis-replication-1   2/2     Terminating   0          49s
pod/redis-replication-2   2/2     Running       0          8s
$ k exec -it pod/redis-replication-0 -- redis-cli ROLE
Defaulted container "redis-replication" out of: redis-replication, redis-exporter
1) "master"
2) (integer) 476
3) 1) 1) "192.168.43.204"
      2) "6379"
      3) "476"
   2) 1) "192.168.251.42"
      2) "6379"
      3) "476"
$ k get all
NAME                      READY   STATUS        RESTARTS   AGE
pod/redis-replication-0   2/2     Running       0          6m59s
pod/redis-replication-1   2/2     Running       0          18s
pod/redis-replication-2   2/2     Terminating   0          90s
$ k exec -it pod/redis-replication-0 -- redis-cli ROLE
Defaulted container "redis-replication" out of: redis-replication, redis-exporter
1) "master"
2) (integer) 546
3) 1) 1) "192.168.251.43"
      2) "6379"
      3) "546"
$ k get all
NAME                      READY   STATUS        RESTARTS   AGE
pod/redis-replication-0   2/2     Running       0          8m22s
pod/redis-replication-1   2/2     Terminating   0          101s
pod/redis-replication-2   2/2     Running       0          24s
$ k exec -it pod/redis-replication-0 -- redis-cli ROLE
Defaulted container "redis-replication" out of: redis-replication, redis-exporter
1) "master"
2) (integer) 644
3) 1) 1) "192.168.43.201"
      2) "6379"
      3) "644"
$ k get all 
NAME                      READY   STATUS        RESTARTS   AGE
pod/redis-replication-0   2/2     Terminating   0          8m59s
pod/redis-replication-1   2/2     Running       0          23s
pod/redis-replication-2   2/2     Running       0          61s

Latest Observation:

$ k get all
NAME                      READY   STATUS              RESTARTS   AGE
pod/redis-replication-0   0/2     ContainerCreating   0          5s
pod/redis-replication-1   2/2     Running             0          40s
pod/redis-replication-2   2/2     Running             0          78s

redis-replication-0 is recreated, now in ContainerCreating state.

$ k exec -it pod/redis-replication-1 -- redis-cli ROLE
Defaulted container "redis-replication" out of: redis-replication, redis-exporter
1) "slave"
2) "192.168.52.204"
3) (integer) 6379
4) "connecting"
5) (integer) -1

$ k exec -it pod/redis-replication-2 -- redis-cli ROLE
Defaulted container "redis-replication" out of: redis-replication, redis-exporter
1) "slave"
2) "192.168.52.204"
3) (integer) 6379
4) "connecting"
5) (integer) -1
drivebyer commented 1 month ago

please put the RedisReplication custom resource yaml content @wkd-woo

wkd-woo commented 1 month ago

It's the latest version of CRDs. @drivebyer

$ diff ~/go/src/github.com/OT_CONTAINER_KIT/redis-operator/config/crd/bases/redis.redis.opstreelabs.in_redisreplications.yaml \
<(kubectl get crds redisreplications.redis.redis.opstreelabs.in -o yaml)

1,2d0
<
< ---
8c6,7
<   creationTimestamp: null
---
>   creationTimestamp: "2024-04-01T11:22:12Z"
>   generation: 1
9a9,10
>   resourceVersion: "32362718"
>   uid: 65f9da5c-7432-4bb3-886d-58186cde089b
10a12,13
>   conversion:
>     strategy: None
8860,8863c8863,8879
<     kind: ""
<     plural: ""
<   conditions: []
<   storedVersions: []
---
>     kind: RedisReplication
>     listKind: RedisReplicationList
>     plural: redisreplications
>     singular: redisreplication
>   conditions:
>   - lastTransitionTime: "2024-04-01T11:22:12Z"
>     message: no conflicts found
>     reason: NoConflicts
>     status: "True"
>     type: NamesAccepted
>   - lastTransitionTime: "2024-04-01T11:22:12Z"
>     message: the initial names have been accepted
>     reason: InitialNamesAccepted
>     status: "True"
>     type: Established
>   storedVersions:
>   - v1beta2
drivebyer commented 1 month ago

The custom resource, not the custom resource definition @wkd-woo

You could use kubectl get redisreplication -n ${namespace} then kubectl get redisreplication -n ${namespace} ${resource} -oyaml

wkd-woo commented 1 month ago

I'm sorry, here it is. @drivebyer

$ kubectl get redisreplication -o yaml
apiVersion: v1
items:
- apiVersion: redis.redis.opstreelabs.in/v1beta2
  kind: RedisReplication
  metadata:
    annotations:
      meta.helm.sh/release-name: redis-replication
      meta.helm.sh/release-namespace: jude
    creationTimestamp: "2024-05-20T05:39:10Z"
    finalizers:
    - redisReplicationFinalizer
    generation: 2
    labels:
      app.kubernetes.io/component: middleware
      app.kubernetes.io/instance: redis-replication
      app.kubernetes.io/managed-by: Helm
      app.kubernetes.io/name: redis-replication
      app.kubernetes.io/version: 0.15.1
      dbservice: redis
      helm.sh/chart: redis-replication-0.15.11
      region: kr2
      servicename: jude-replication
      topology: sentinel
    name: redis-replication
    namespace: jude
    resourceVersion: "58989858"
    uid: e0c9c629-c595-4b5b-b526-0f4d23a7b620
  spec:
    clusterSize: 3
    kubernetesConfig:
      image: <PRIVATE_REPOSITORY>/redis:v7.2.3
      imagePullPolicy: IfNotPresent
      resources:
        limits:
          cpu: 101m
          memory: 3Gi
        requests:
          cpu: 101m
          memory: 3Gi
      updateStrategy: {}
    livenessProbe:
      failureThreshold: 3
      initialDelaySeconds: 1
      periodSeconds: 10
      successThreshold: 1
      timeoutSeconds: 1
    nodeSelector:
      kubernetes.io/arch: amd64
      kubernetes.io/os: linux
      topology: sentinel
    podSecurityContext:
      fsGroup: 1000
      runAsUser: 1000
    readinessProbe:
      failureThreshold: 3
      initialDelaySeconds: 1
      periodSeconds: 10
      successThreshold: 1
      timeoutSeconds: 1
    redisConfig:
      additionalRedisConfig: redis-replication-ext-config
    redisExporter:
      enabled: true
      image: <PRIVATE_REPOSITORY>/redis-exporter:v1.44.0
      imagePullPolicy: IfNotPresent
      port: 9121
      resources:
        limits:
          cpu: 100m
          memory: 128Mi
        requests:
          cpu: 100m
          memory: 128Mi
    storage:
      volumeClaimTemplate:
        metadata: {}
        spec:
          accessModes:
          - ReadWriteOnce
          resources:
            requests:
              storage: 10Gi
          storageClassName: csi-cinder-sc-delete
        status: {}
      volumeMount: {}
  status: {}
kind: List
metadata:
  resourceVersion: ""
drivebyer commented 1 month ago

I tested this YAML in my environment, but it does not recreate after it is created.

Here are some suggestions:

  1. Roll back the operator version and check if the same issue persists.
  2. Check the pod's StatefulSet between each recreation to see if there is a difference in the StatefulSet spec. @wkd-woo
wkd-woo commented 1 month ago
  1. I rolled back the operator, then it reconciles well as it did. No creates the same issue.

  2. Here's the statefulSet manifests.

statefulSet manifests in redis-operator v0.17.0

$ k get statefulset.apps/redis-replication -o yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
  annotations:
    banzaicloud.com/last-applied: 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
    meta.helm.sh/release-name: redis-replication
    meta.helm.sh/release-namespace: jude
    redis.opstreelabs.in: "true"
    redis.opstreelabs.instance: redis-replication
    storageCapacity: ""
  creationTimestamp: "2024-05-20T05:39:10Z"
  generation: 100
  labels:
    app: redis-replication
    app.kubernetes.io/component: middleware
    app.kubernetes.io/instance: redis-replication
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: redis-replication
    app.kubernetes.io/version: 0.15.1
    dbservice: redis
    helm.sh/chart: redis-replication-0.15.11
    redis_setup_type: replication
    region: kr2
    role: replication
    servicename: jude-replication
    topology: sentinel
  name: redis-replication
  namespace: jude
  ownerReferences:
  - apiVersion: redis.redis.opstreelabs.in/v1beta2
    controller: true
    kind: RedisReplication
    name: redis-replication
    uid: e0c9c629-c595-4b5b-b526-0f4d23a7b620
  resourceVersion: "59005445"
  uid: 3030ad41-68da-44d7-b8fa-3690668c244a
spec:
  persistentVolumeClaimRetentionPolicy:
    whenDeleted: Retain
    whenScaled: Retain
  podManagementPolicy: OrderedReady
  replicas: 3
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app: redis-replication
      app.kubernetes.io/component: middleware
      app.kubernetes.io/instance: redis-replication
      app.kubernetes.io/managed-by: Helm
      app.kubernetes.io/name: redis-replication
      app.kubernetes.io/version: 0.15.1
      dbservice: redis
      helm.sh/chart: redis-replication-0.15.11
      redis_setup_type: replication
      region: kr2
      role: replication
      servicename: jude-replication
      topology: sentinel
  serviceName: redis-replication-headless
  template:
    metadata:
      annotations:
        meta.helm.sh/release-name: redis-replication
        meta.helm.sh/release-namespace: jude
        redis.opstreelabs.in: "true"
        redis.opstreelabs.instance: redis-replication
      creationTimestamp: null
      labels:
        app: redis-replication
        app.kubernetes.io/component: middleware
        app.kubernetes.io/instance: redis-replication
        app.kubernetes.io/managed-by: Helm
        app.kubernetes.io/name: redis-replication
        app.kubernetes.io/version: 0.15.1
        dbservice: redis
        helm.sh/chart: redis-replication-0.15.11
        redis_setup_type: replication
        region: kr2
        role: replication
        servicename: jude-replication
        topology: sentinel
    spec:
      containers:
      - env:
        - name: PERSISTENCE_ENABLED
          value: "true"
        - name: REDIS_ADDR
          value: redis://localhost:6379
        - name: REDIS_PORT
          value: "6379"
        - name: SERVER_MODE
          value: replication
        - name: SETUP_MODE
          value: replication
        image: <PRIVATE_REPOSITORY>/redis:v7.2.3
        imagePullPolicy: IfNotPresent
        livenessProbe:
          exec:
            command:
            - sh
            - -c
            - redis-cli -h $(hostname) -p ${REDIS_PORT} ping
          failureThreshold: 3
          initialDelaySeconds: 1
          periodSeconds: 10
          successThreshold: 1
          timeoutSeconds: 1
        name: redis-replication
        readinessProbe:
          exec:
            command:
            - sh
            - -c
            - redis-cli -h $(hostname) -p ${REDIS_PORT} ping
          failureThreshold: 3
          initialDelaySeconds: 1
          periodSeconds: 10
          successThreshold: 1
          timeoutSeconds: 1
        resources:
          limits:
            cpu: 101m
            memory: 3Gi
          requests:
            cpu: 101m
            memory: 3Gi
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /data
          name: redis-replication
        - mountPath: /etc/redis/external.conf.d
          name: external-config
      - env:
        - name: REDIS_ADDR
          value: redis://localhost:6379
        image: <PRIVATE_REPOSITORY>/redis-exporter:v1.44.0
        imagePullPolicy: IfNotPresent
        name: redis-exporter
        ports:
        - containerPort: 9121
          name: redis-exporter
          protocol: TCP
        resources:
          limits:
            cpu: 100m
            memory: 128Mi
          requests:
            cpu: 100m
            memory: 128Mi
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      nodeSelector:
        kubernetes.io/arch: amd64
        kubernetes.io/os: linux
        topology: sentinel
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext:
        fsGroup: 1000
        runAsUser: 1000
      terminationGracePeriodSeconds: 30
      volumes:
      - configMap:
          defaultMode: 420
          name: redis-replication-ext-config
        name: external-config
  updateStrategy:
    rollingUpdate:
      partition: 0
    type: RollingUpdate
  volumeClaimTemplates:
  - apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      annotations:
        meta.helm.sh/release-name: redis-replication
        meta.helm.sh/release-namespace: jude
        redis.opstreelabs.in: "true"
        redis.opstreelabs.instance: redis-replication
      creationTimestamp: null
      labels:
        app: redis-replication
        app.kubernetes.io/component: middleware
        app.kubernetes.io/instance: redis-replication
        app.kubernetes.io/managed-by: Helm
        app.kubernetes.io/name: redis-replication
        app.kubernetes.io/version: 0.15.1
        dbservice: redis
        helm.sh/chart: redis-replication-0.15.11
        redis_setup_type: replication
        region: kr2
        role: replication
        servicename: jude-replication
        topology: sentinel
      name: redis-replication
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 10Gi
      storageClassName: csi-cinder-sc-delete
      volumeMode: Filesystem
    status:
      phase: Pending
status:
  availableReplicas: 3
  collisionCount: 0
  currentReplicas: 1
  currentRevision: redis-replication-886565947
  observedGeneration: 100
  readyReplicas: 3
  replicas: 3
  updateRevision: redis-replication-886565947
  updatedReplicas: 1

statefulSet manifests in redis-operator v0.16.0

$ k get statefulset.apps/redis-replication -o yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
  annotations:
    banzaicloud.com/last-applied: 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
    meta.helm.sh/release-name: redis-replication
    meta.helm.sh/release-namespace: jude
    redis.opstreelabs.in: "true"
    redis.opstreelabs.instance: redis-replication
    storageCapacity: ""
  creationTimestamp: "2024-05-20T05:39:10Z"
  generation: 101
  labels:
    app: redis-replication
    app.kubernetes.io/component: middleware
    app.kubernetes.io/instance: redis-replication
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: redis-replication
    app.kubernetes.io/version: 0.15.1
    dbservice: redis
    helm.sh/chart: redis-replication-0.15.11
    redis_setup_type: replication
    region: kr2
    role: replication
    servicename: jude-replication
    topology: sentinel
  name: redis-replication
  namespace: jude
  ownerReferences:
  - apiVersion: redis.redis.opstreelabs.in/v1beta2
    controller: true
    kind: RedisReplication
    name: redis-replication
    uid: e0c9c629-c595-4b5b-b526-0f4d23a7b620
  resourceVersion: "59005803"
  uid: 3030ad41-68da-44d7-b8fa-3690668c244a
spec:
  persistentVolumeClaimRetentionPolicy:
    whenDeleted: Retain
    whenScaled: Retain
  podManagementPolicy: OrderedReady
  replicas: 3
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app: redis-replication
      app.kubernetes.io/component: middleware
      app.kubernetes.io/instance: redis-replication
      app.kubernetes.io/managed-by: Helm
      app.kubernetes.io/name: redis-replication
      app.kubernetes.io/version: 0.15.1
      dbservice: redis
      helm.sh/chart: redis-replication-0.15.11
      redis_setup_type: replication
      region: kr2
      role: replication
      servicename: jude-replication
      topology: sentinel
  serviceName: redis-replication-headless
  template:
    metadata:
      annotations:
        meta.helm.sh/release-name: redis-replication
        meta.helm.sh/release-namespace: jude
        redis.opstreelabs.in: "true"
        redis.opstreelabs.instance: redis-replication
      creationTimestamp: null
      labels:
        app: redis-replication
        app.kubernetes.io/component: middleware
        app.kubernetes.io/instance: redis-replication
        app.kubernetes.io/managed-by: Helm
        app.kubernetes.io/name: redis-replication
        app.kubernetes.io/version: 0.15.1
        dbservice: redis
        helm.sh/chart: redis-replication-0.15.11
        redis_setup_type: replication
        region: kr2
        role: replication
        servicename: jude-replication
        topology: sentinel
    spec:
      containers:
      - env:
        - name: PERSISTENCE_ENABLED
          value: "true"
        - name: REDIS_ADDR
          value: redis://localhost:6379
        - name: REDIS_PORT
          value: "6379"
        - name: SERVER_MODE
          value: replication
        - name: SETUP_MODE
          value: replication
        image: <PRIVATE_REPOSITORY>/redis:v7.2.3
        imagePullPolicy: IfNotPresent
        livenessProbe:
          exec:
            command:
            - bash
            - /usr/bin/healthcheck.sh
          failureThreshold: 3
          initialDelaySeconds: 1
          periodSeconds: 10
          successThreshold: 1
          timeoutSeconds: 1
        name: redis-replication
        readinessProbe:
          exec:
            command:
            - bash
            - /usr/bin/healthcheck.sh
          failureThreshold: 3
          initialDelaySeconds: 1
          periodSeconds: 10
          successThreshold: 1
          timeoutSeconds: 1
        resources:
          limits:
            cpu: 101m
            memory: 3Gi
          requests:
            cpu: 101m
            memory: 3Gi
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /data
          name: redis-replication
        - mountPath: /etc/redis/external.conf.d
          name: external-config
      - env:
        - name: REDIS_ADDR
          value: redis://localhost:6379
        image: <PRIVATE_REPOSITORY>/redis-exporter:v1.44.0
        imagePullPolicy: IfNotPresent
        name: redis-exporter
        ports:
        - containerPort: 9121
          name: redis-exporter
          protocol: TCP
        resources:
          limits:
            cpu: 100m
            memory: 128Mi
          requests:
            cpu: 100m
            memory: 128Mi
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      nodeSelector:
        kubernetes.io/arch: amd64
        kubernetes.io/os: linux
        topology: sentinel
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext:
        fsGroup: 1000
        runAsUser: 1000
      terminationGracePeriodSeconds: 30
      volumes:
      - configMap:
          defaultMode: 420
          name: redis-replication-ext-config
        name: external-config
  updateStrategy:
    rollingUpdate:
      partition: 0
    type: RollingUpdate
  volumeClaimTemplates:
  - apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      annotations:
        meta.helm.sh/release-name: redis-replication
        meta.helm.sh/release-namespace: jude
        redis.opstreelabs.in: "true"
        redis.opstreelabs.instance: redis-replication
      creationTimestamp: null
      labels:
        app: redis-replication
        app.kubernetes.io/component: middleware
        app.kubernetes.io/instance: redis-replication
        app.kubernetes.io/managed-by: Helm
        app.kubernetes.io/name: redis-replication
        app.kubernetes.io/version: 0.15.1
        dbservice: redis
        helm.sh/chart: redis-replication-0.15.11
        redis_setup_type: replication
        region: kr2
        role: replication
        servicename: jude-replication
        topology: sentinel
      name: redis-replication
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 10Gi
      storageClassName: csi-cinder-sc-delete
      volumeMode: Filesystem
    status:
      phase: Pending
status:
  availableReplicas: 3
  collisionCount: 0
  currentReplicas: 3
  currentRevision: redis-replication-997497f55
  observedGeneration: 101
  readyReplicas: 3
  replicas: 3
  updateRevision: redis-replication-997497f55
  updatedReplicas: 3
wkd-woo commented 1 month ago

@drivebyer and here's the diff. The only difference in those statefulSet manifests, is the healthCheck for probe.

$ diff v16manifest.yaml v17manifest.yaml
5c5
<     banzaicloud.com/last-applied: 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
---
>     banzaicloud.com/last-applied: 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
12c12
<   generation: 101
---
>   generation: 100
35c35
<   resourceVersion: "59005803"
---
>   resourceVersion: "59005445"
100,101c100,102
<                 - bash
<                 - /usr/bin/healthcheck.sh
---
>                 - sh
>                 - -c
>                 - redis-cli -h $(hostname) -p ${REDIS_PORT} ping
111,112c112,114
<                 - bash
<                 - /usr/bin/healthcheck.sh
---
>                 - sh
>                 - -c
>                 - redis-cli -h $(hostname) -p ${REDIS_PORT} ping
209,211c211,213
<   currentReplicas: 3
<   currentRevision: redis-replication-997497f55
<   observedGeneration: 101
---
>   currentReplicas: 1
>   currentRevision: redis-replication-886565947
>   observedGeneration: 100
214,215c216,217
<   updateRevision: redis-replication-997497f55
<   updatedReplicas: 3
---
>   updateRevision: redis-replication-886565947
>   updatedReplicas: 1
drivebyer commented 1 month ago

@wkd-woo Does the StatefulSet change between pod recreation (using the same version operator)?

wkd-woo commented 1 month ago

@drivebyer Sorry for replying you late. No it doesn't. Only recreation of pods is constantly occurring.(One thing at a time. I think this is also a strange part..)

$ watch kubectl get sts

NAME                      READY   AGE
redis-replication         2/3     6d1h
redis-sentinel-sentinel   3/3     6d1h