Open wkd-woo opened 1 month ago
please put the RedisReplication custom resource yaml content @wkd-woo
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
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
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: ""
I tested this YAML in my environment, but it does not recreate after it is created.
Here are some suggestions:
I rolled back the operator, then it reconciles well as it did. No creates the same issue.
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
@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: UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAb3JpZ2luYWzsWV1v2zrS/ivF4Fy8LyDZkvPRje66SbanQNMatpsFmhQBTY1tbihSS1JuvIH/+4LU94d90tOLRQ56Z49mRuTMM5x5qGcgKbtFpZkUEAFJUz3ehuDBIxMxRDA3xOAq43M04EGChsTEEIiegQghDTFMCm3/2kejDfJkpDdjhRyJRl+QBCEChTHTvsKUM+osCleD+jol1Br9K4sRvNx2JFNtFCInSz1idqFGZYeeakMEHX7t3gOq0P1esAS1IUkKEUyCyakfnPmTYBGcRScXURh8BQ84WSJ3myNpemAbJE1Hj9kSlUCDesTkmMoklQKFgQgSFsccvxOFg6pH1zpkkBBB1hj7yx1E8DvyZFDrSNT7ytsq98EoPBvZ1MdLjWrL6nWBB2Wm6IYoM+Tcz83DMikPGk2WPphdmrtprkLhOn/lo5rYv5L3dYolFHuxYOhsxchUcrm2kdAoDBPIbX6LEP2DIY81RHcHAb5yGot8fbn6bS2/DW3eV1ET8auog/kRRM97D1bRkoj/EEa5zOIRlcmYE218kqacYVzqHCmQP1AoKiLXGq6Hw89KhOUa2khF1nhJUkKZ2Vmxk9dQr/bkMF/9PAzyQyrdVx9H8yGdZoCOgDdXaAA3F3RQ24hSC56lfN3wlYOyiFoTi7moRl8RQfldoJrhChUKis1QPkbP95Cx+B6ie8CAXtDzyYVPzy7O/NPl2dJfnk3O/WB1Gk9OyNvl+SS4h71zm787RZqDL7Wb1QaFuZU8S/CSE5bM0AqYFFPJGd21Mvh9g+IKOZoahFY0p4TnEidKZXzjEpGgMJWXIiKu4HT9f8tsvH9nFke7jyxhpo4RR2qk6sTsUzNmmKScGPyRyvqfV82v8vjp8ujgmEphCBOoXEBddVhTVx55W8GnVCqDKi+EOuYott26qixn11cf5g/vrq5mXavmuraEZ1gviiVkXT1zf6YZ5+0iaJrbZfVKu9rPVCpzD9FFOAm9e0iVNJJK7la3uJx2l9UyG3xZ4aBerkItM9U+XVYRt2XYFtE0g6o+EqnqY0rhvzPUL1LPE4kqYcIV5g1qbSNEzKZKc/9pFbtehnojw4+kd3o9m3+YL64/XV4/XH969/eP11cvy/PP4mTYfvp5tvhz9vPr2e317OHm89X1n3Ww+DL9AfsXA52zLQrUeqrkEtuJecprt4HdJCGi7iErwnimcLFRqDeSV+2GCWYY4VfIyW6OVIq46iUpKibjjlBnlKLWPT+GJSgz09DubVghidnrWv6rKmcHKjd33MhM9E/BxEqtMwfSse3sXXxWKtAB7AEfaOjYHRpjfDKoBOEjKsVqFL/ccbHtWOjOoS5jnHcmFmX5oOqMQJpuMM44quYgo5FmipndpRQGn0xrLSv9Xsmsmg1UJt7pLxpVlbJGkN8rQnE6hKQ80r0gV4dAGRDfBoStB3rLiq1vSNqSxrgiGTc3MsaBDPSjlqUxMTg3ihh0rTzv+5yJ9Rf3qOU9JcowU4wI+U6L6aGxIzezLoo5UJe4zCcdZQlz8csDmaLKqV4Exds8sIXU4etvo8lpFJx+hb33k1RPG2Iynf8mW8I4WXKcdUZgavdvX3BpMVdJM6VQmJ5yKc7H5lIs3RyG8XsU1R5LCJJ41/XSncLztHSd5tK4adwOrR0NLVyMTSEq/w9CrbNleT5Zhp3H5nAGwvAr7L95cOTuQfQvd3qkqUvX89l8aEIfb8MlGjIBD+pNQWRUhtXl1czazXqLOLC+jFmblxA0t9MyOvVizy6C4OzkPIS9B+W4WyfvxIMGR4KEGLr5+OuG6bXdMO0rw08HguBvkMQctSuXBuX9C1ye/roRfZV4Lc6iJvG+ewZHt+6eyyNxgGGBBwWPyCFjW2yhXdOohpLbZjQec0kJ30htovOTtxd9M8ueGmZdpQZFajlvQrGhXNKhQ7rfPCjoD9jyWxKNo0flUxRGEe5PRo9UjWLcjsuQSs2MVLt89oy2b0eT0QkUTpq0CT6sPkkzVWijDR70CFRJPCq+cQd6Ax74tMSETzl742/e/PZ/Nlx2S///xk/f/PZcB2r/JmViDd9sl+/xlBMPBklK6EGHoYSB7eldfhLmHb1JTsL90S7Z51mvdpct/lXTLkefIAzCxJ20OYGCk/cMnE1NuI4o7j1ok6W7Z2iwlJwfHRtHLMJbBgfJUO2lQwpg/8166ZT5DxXuz5VOdY8XbcPR6ekoeEkRtSJSOgAPiqu3u2foXJy567bDZtUlGiwup63B7UDag1Y2w8nfbg4mflB178bgNr+EdochitqckiQ+PwWv81BqiIAzkT0d/sg1QEAr3hkGQeBBg3daQYXHKoQ1PzyEQR+fTAWlYyDbe9CjitULu4yvO+E3PzZPh75w/DU+O/+anF7d5HT0dK6GKuKazY2MHbhhhiT+p2IGP9tcdE+b5iFSfIp1B0nRMsqvs5xoXbALqplPmYhR+Zr6sfuaB3VzidHdaHDUO20wcQurrjHSDdHoykrEtrnubUNoPB+45LAnR/1nv/9vAAAA//9QSwcI9lvDTWIHAAAfIgAAUEsBAhQAFAAIAAgAAAAAAPZbw01iBwAAHyIAAAgAAAAAAAAAAAAAAAAAAAAAAG9yaWdpbmFsUEsFBgAAAAABAAEANgAAAJgHAAAAAA==
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
@wkd-woo Does the StatefulSet change between pod recreation (using the same version operator)?
@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
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/amd64kubectl version
OutputSteps to Reproduce:
Observed Behavior
What did you do? I just deploy redis replication via helm-chart
and following below is the manifest I'm using
What did you see instead?
redis-replication-1
is in Terminating state while others are running.redis-replication-0
is the master, withredis-replication-2
as its slave.redis-replication-0
remains the master, with updated replication state.redis-replication-1
enters Terminating state again, continuing the cycle.redis-replication-0
, updating its replication state.Furtherredis-replication-0
enters Terminating state.Latest Observation:
redis-replication-0
is recreated, now in ContainerCreating state.redis-replication-1
andredis-replication-2
are in slave state but show connecting status, unable to properly connect to the master.