apiVersion: v1 kind: Namespace metadata: name: redis-demo --- apiVersion: apps/v1 kind: StatefulSet metadata: name: redis namespace: redis-demo spec: serviceName: redis-headless replicas: 3 selector: matchLabels: app: redis template: metadata: labels: app: redis spec: containers: - name: redis image: redis:7-alpine ports: - containerPort: 6379 command: - redis-server - --bind - "0.0.0.0" - --port - "6379" - --replica-announce-ip - $(POD_NAME).redis-headless.redis-demo.svc.cluster.local env: - name: POD_NAME valueFrom: fieldRef: fieldPath: metadata.name volumeMounts: - name: redis-data mountPath: /data volumes: - name: redis-data emptyDir: {} --- apiVersion: v1 kind: Service metadata: name: redis-headless namespace: redis-demo labels: app: redis spec: clusterIP: None ports: - port: 6379 name: redis selector: app: redis --- apiVersion: v1 kind: Service metadata: name: redis namespace: redis-demo labels: app: redis spec: ports: - port: 6379 name: redis selector: app: redis