apiVersion: v1 kind: Service metadata: name: redis-service namespace: swarm-system labels: app: redis spec: ports: - port: 6379 targetPort: 6379 name: redis clusterIP: None selector: app: redis --- apiVersion: apps/v1 kind: StatefulSet metadata: name: redis namespace: swarm-system labels: app: redis spec: serviceName: redis-service replicas: 1 selector: matchLabels: app: redis template: metadata: labels: app: redis spec: containers: - name: redis image: redis:7-alpine ports: - containerPort: 6379 name: redis command: - redis-server - --appendonly - "yes" - --appendfsync - everysec - --maxmemory-policy - allkeys-lru - --maxmemory - 256mb volumeMounts: - name: redis-data mountPath: /data resources: requests: memory: "128Mi" cpu: "100m" limits: memory: "512Mi" cpu: "500m" livenessProbe: tcpSocket: port: 6379 initialDelaySeconds: 30 periodSeconds: 10 timeoutSeconds: 5 failureThreshold: 3 readinessProbe: exec: command: - redis-cli - ping initialDelaySeconds: 5 periodSeconds: 5 timeoutSeconds: 3 failureThreshold: 3 volumeClaimTemplates: - metadata: name: redis-data spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi