12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- apiVersion: apps/v1
- kind: StatefulSet
- metadata:
- name: cassandra
- spec:
- serviceName: cassandra
- replicas: 3
- selector:
- matchLabels:
- app: cassandra
- template:
- metadata:
- labels:
- app: cassandra
- spec:
- containers:
- - name: cassandra
- image: gcr.io/google-samples/cassandra:v13
- imagePullPolicy: Always
- ports:
- - containerPort: 7000
- name: intra-node
- - containerPort: 7001
- name: tls-intra-node
- - containerPort: 7199
- name: jmx
- - containerPort: 9042
- name: cql
- resources:
- requests:
- cpu: "300m"
- memory: 1Gi
- securityContext:
- capabilities:
- add:
- - IPC_LOCK
- lifecycle:
- preStop:
- exec:
- command:
- - /bin/sh
- - -c
- - nodetool drain
- env:
- - name: MAX_HEAP_SIZE
- value: 512M
- - name: HEAP_NEWSIZE
- value: 100M
- - name: POD_NAMESPACE
- valueFrom:
- fieldRef:
- fieldPath: metadata.namespace
- - name: CASSANDRA_SEEDS
- value: "cassandra-0.cassandra.$(POD_NAMESPACE).svc.cluster.local"
- - name: CASSANDRA_CLUSTER_NAME
- value: "K8Demo"
- - name: CASSANDRA_DC
- value: "DC1-K8Demo"
- - name: CASSANDRA_RACK
- value: "Rack1-K8Demo"
- - name: POD_IP
- valueFrom:
- fieldRef:
- fieldPath: status.podIP
- readinessProbe:
- exec:
- command:
- - /bin/bash
- - -c
- - /ready-probe.sh
- initialDelaySeconds: 15
- timeoutSeconds: 5
- # These volume mounts are persistent. They are like inline claims,
- # but not exactly because the names need to match exactly one of
- # the stateful pod volumes.
- volumeMounts:
- - name: cassandra-data
- mountPath: /cassandra_data
- # These are converted to volume claims by the controller
- # and mounted at the paths mentioned above.
- # do not use these in production until ssd GCEPersistentDisk or other ssd pd
- volumeClaimTemplates:
- - metadata:
- name: cassandra-data
- spec:
- accessModes: [ "ReadWriteOnce" ]
- resources:
- requests:
- storage: 1Gi
|