statefulset.yaml 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. apiVersion: apps/v1
  2. kind: StatefulSet
  3. metadata:
  4. name: cassandra
  5. spec:
  6. serviceName: cassandra
  7. replicas: 3
  8. selector:
  9. matchLabels:
  10. app: cassandra
  11. template:
  12. metadata:
  13. labels:
  14. app: cassandra
  15. spec:
  16. containers:
  17. - name: cassandra
  18. image: gcr.io/google-samples/cassandra:v13
  19. imagePullPolicy: Always
  20. ports:
  21. - containerPort: 7000
  22. name: intra-node
  23. - containerPort: 7001
  24. name: tls-intra-node
  25. - containerPort: 7199
  26. name: jmx
  27. - containerPort: 9042
  28. name: cql
  29. resources:
  30. requests:
  31. cpu: "300m"
  32. memory: 1Gi
  33. securityContext:
  34. capabilities:
  35. add:
  36. - IPC_LOCK
  37. lifecycle:
  38. preStop:
  39. exec:
  40. command:
  41. - /bin/sh
  42. - -c
  43. - nodetool drain
  44. env:
  45. - name: MAX_HEAP_SIZE
  46. value: 512M
  47. - name: HEAP_NEWSIZE
  48. value: 100M
  49. - name: POD_NAMESPACE
  50. valueFrom:
  51. fieldRef:
  52. fieldPath: metadata.namespace
  53. - name: CASSANDRA_SEEDS
  54. value: "cassandra-0.cassandra.$(POD_NAMESPACE).svc.cluster.local"
  55. - name: CASSANDRA_CLUSTER_NAME
  56. value: "K8Demo"
  57. - name: CASSANDRA_DC
  58. value: "DC1-K8Demo"
  59. - name: CASSANDRA_RACK
  60. value: "Rack1-K8Demo"
  61. - name: POD_IP
  62. valueFrom:
  63. fieldRef:
  64. fieldPath: status.podIP
  65. readinessProbe:
  66. exec:
  67. command:
  68. - /bin/bash
  69. - -c
  70. - /ready-probe.sh
  71. initialDelaySeconds: 15
  72. timeoutSeconds: 5
  73. # These volume mounts are persistent. They are like inline claims,
  74. # but not exactly because the names need to match exactly one of
  75. # the stateful pod volumes.
  76. volumeMounts:
  77. - name: cassandra-data
  78. mountPath: /cassandra_data
  79. # These are converted to volume claims by the controller
  80. # and mounted at the paths mentioned above.
  81. # do not use these in production until ssd GCEPersistentDisk or other ssd pd
  82. volumeClaimTemplates:
  83. - metadata:
  84. name: cassandra-data
  85. spec:
  86. accessModes: [ "ReadWriteOnce" ]
  87. resources:
  88. requests:
  89. storage: 1Gi