apiVersion: v1 kind: Service metadata: name: redis labels: app.kubernetes.io/name: redis spec: selector: app.kubernetes.io/name: redis ports: - name: redis port: 6379 targetPort: redis --- apiVersion: apps/v1 kind: StatefulSet metadata: name: redis labels: app.kubernetes.io/name: redis spec: serviceName: redis replicas: 1 selector: matchLabels: app.kubernetes.io/name: redis template: metadata: labels: app.kubernetes.io/name: redis spec: containers: - name: redis image: redis:7-alpine imagePullPolicy: IfNotPresent args: ["redis-server", "--appendonly", "yes", "--save", "60", "1", "--loglevel", "warning"] ports: - name: redis containerPort: 6379 readinessProbe: exec: command: ["redis-cli", "ping"] initialDelaySeconds: 5 periodSeconds: 5 livenessProbe: exec: command: ["redis-cli", "ping"] initialDelaySeconds: 20 periodSeconds: 10 resources: requests: cpu: 50m memory: 128Mi limits: cpu: 500m memory: 512Mi volumeMounts: - name: redis-data mountPath: /data volumeClaimTemplates: - metadata: name: redis-data spec: accessModes: ["ReadWriteOnce"] resources: requests: storage: 5Gi