apiVersion: v1 kind: ConfigMap metadata: name: redis-config namespace: urban-lifeline data: redis.conf: | bind 0.0.0.0 protected-mode no port 6379 tcp-backlog 511 timeout 0 tcp-keepalive 300 daemonize no supervised no pidfile /var/run/redis_6379.pid loglevel notice logfile "" databases 16 always-show-logo yes save 900 1 save 300 10 save 60 10000 stop-writes-on-bgsave-error yes rdbcompression yes rdbchecksum yes dbfilename dump.rdb dir /data maxmemory 512mb maxmemory-policy allkeys-lru appendonly yes appendfilename "appendonly.aof" appendfsync everysec no-appendfsync-on-rewrite no auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb --- apiVersion: v1 kind: Service metadata: name: redis namespace: urban-lifeline labels: app: redis spec: selector: app: redis ports: - name: redis port: 6379 targetPort: 6379 type: ClusterIP --- apiVersion: v1 kind: Service metadata: name: redis-nodeport namespace: urban-lifeline labels: app: redis spec: selector: app: redis type: NodePort ports: - name: redis port: 6379 targetPort: 6379 nodePort: 30379 --- apiVersion: apps/v1 kind: StatefulSet metadata: name: redis namespace: urban-lifeline labels: app: redis spec: serviceName: redis replicas: 1 selector: matchLabels: app: redis template: metadata: labels: app: redis spec: containers: - name: redis image: redis:7-alpine imagePullPolicy: IfNotPresent command: - redis-server - /usr/local/etc/redis/redis.conf ports: - containerPort: 6379 name: redis env: - name: TZ value: "Asia/Shanghai" volumeMounts: - name: redis-data mountPath: /data - name: redis-config mountPath: /usr/local/etc/redis livenessProbe: exec: command: - redis-cli - ping initialDelaySeconds: 30 periodSeconds: 30 timeoutSeconds: 5 readinessProbe: exec: command: - redis-cli - ping initialDelaySeconds: 10 periodSeconds: 10 timeoutSeconds: 5 resources: requests: memory: "128Mi" cpu: "100m" limits: memory: "512Mi" cpu: "500m" volumes: - name: redis-data hostPath: path: /data/k8s/redis/data type: DirectoryOrCreate - name: redis-config configMap: name: redis-config