statefulset.yaml 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. apiVersion: apps/v1
  2. kind: StatefulSet
  3. metadata:
  4. name: rd
  5. spec:
  6. serviceName: "redis"
  7. replicas: 3
  8. selector:
  9. matchLabels:
  10. app: redis
  11. template:
  12. metadata:
  13. labels:
  14. app: redis
  15. spec:
  16. initContainers:
  17. - name: install
  18. image: gcr.io/kubernetes-e2e-test-images/pets/redis-installer:1.2
  19. imagePullPolicy: Always
  20. args:
  21. - "--install-into=/opt"
  22. - "--work-dir=/work-dir"
  23. volumeMounts:
  24. - name: opt
  25. mountPath: "/opt"
  26. - name: workdir
  27. mountPath: "/work-dir"
  28. - name: bootstrap
  29. image: debian:jessie
  30. command:
  31. - "/work-dir/peer-finder"
  32. args:
  33. - -on-start="/work-dir/on-start.sh"
  34. - "-service=redis"
  35. env:
  36. - name: POD_NAMESPACE
  37. valueFrom:
  38. fieldRef:
  39. apiVersion: v1
  40. fieldPath: metadata.namespace
  41. volumeMounts:
  42. - name: opt
  43. mountPath: "/opt"
  44. - name: workdir
  45. mountPath: "/work-dir"
  46. containers:
  47. - name: redis
  48. image: debian:jessie
  49. ports:
  50. - containerPort: 6379
  51. name: peer
  52. command:
  53. - /opt/redis/redis-server
  54. args:
  55. - /opt/redis/redis.conf
  56. readinessProbe:
  57. exec:
  58. command:
  59. - sh
  60. - -c
  61. - "/opt/redis/redis-cli -h $(hostname) ping"
  62. initialDelaySeconds: 15
  63. timeoutSeconds: 5
  64. volumeMounts:
  65. - name: datadir
  66. mountPath: /data
  67. - name: opt
  68. mountPath: /opt
  69. volumes:
  70. - name: opt
  71. emptyDir: {}
  72. - name: workdir
  73. emptyDir: {}
  74. volumeClaimTemplates:
  75. - metadata:
  76. name: datadir
  77. spec:
  78. accessModes: [ "ReadWriteOnce" ]
  79. resources:
  80. requests:
  81. storage: 1Gi