--- apiVersion: apps/v1 kind: StatefulSet metadata: labels: app: redis workload.user.cattle.io/workloadselector: apps.statefulset-default-redis name: redis namespace: manual-redis1 spec: replicas: 3 selector: matchLabels: workload.user.cattle.io/workloadselector: apps.statefulset-default-redis serviceName: redis-headless template: metadata: labels: app: redis workload.user.cattle.io/workloadselector: apps.statefulset-default-redis spec: affinity: {} containers: - image: redis:6.2.6 imagePullPolicy: Always name: redis ports: - containerPort: 6379 name: redis protocol: TCP - args: - cp /redis/sentinel.conf /tmp/sentinel.conf; redis-server /tmp/sentinel.conf --sentinel command: - sh - -c image: redis:6.2.6 imagePullPolicy: Always name: sentinel ports: - containerPort: 26379 name: sentinel protocol: TCP volumeMounts: - mountPath: /redis/ name: vol-luloi volumes: - configMap: defaultMode: 511 name: redis-sentinel-test optional: false name: vol-luloi --- apiVersion: v1 kind: Service metadata: name: redis-headless namespace: manual-redis1 spec: ports: - name: redis port: 6379 protocol: TCP targetPort: 6379 - name: sentinel port: 26379 protocol: TCP targetPort: 26379 selector: app: redis type: ClusterIP --- apiVersion: v1 data: sentinel.conf: |- port 26379 dir /tmp sentinel monitor mymaster redis-0.redis-headless.manual-redis1.svc.cluster.local 6379 2 sentinel announce-hostnames yes sentinel resolve-hostnames yes sentinel down-after-milliseconds mymaster 5000 sentinel parallel-syncs mymaster 1 sentinel failover-timeout mymaster 5000 kind: ConfigMap metadata: name: redis-sentinel-test namespace: manual-redis1 --- apiVersion: v1 kind: Service metadata: name: redis namespace: manual-redis1 spec: ports: - name: redis port: 6379 protocol: TCP targetPort: 6379 - name: sentinel port: 26379 protocol: TCP targetPort: 26379 selector: workload.user.cattle.io/workloadselector: apps.statefulset-default-redis type: ClusterIP --- apiVersion: v1 kind: Service metadata: name: redis-0 namespace: manual-redis1 spec: ports: - name: redis port: 6379 protocol: TCP targetPort: 6379 - name: sentinel port: 26379 protocol: TCP targetPort: 26379 selector: workload.user.cattle.io/workloadselector: apps.statefulset-default-redis statefulset.kubernetes.io/pod-name: redis-0 type: ClusterIP --- apiVersion: v1 kind: Service metadata: name: redis-1 namespace: manual-redis1 spec: ports: - name: redis port: 6379 protocol: TCP targetPort: 6379 - name: sentinel port: 26379 protocol: TCP targetPort: 26379 selector: workload.user.cattle.io/workloadselector: apps.statefulset-default-redis statefulset.kubernetes.io/pod-name: redis-1 type: ClusterIP --- apiVersion: v1 kind: Service metadata: name: redis-2 namespace: manual-redis1 spec: ports: - name: redis port: 6379 protocol: TCP targetPort: 6379 - name: sentinel port: 26379 protocol: TCP targetPort: 26379 selector: workload.user.cattle.io/workloadselector: apps.statefulset-default-redis statefulset.kubernetes.io/pod-name: redis-2 type: ClusterIP