12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- apiVersion: apps/v1
- kind: StatefulSet
- metadata:
- name: "etcd"
- namespace: discov
- labels:
- app: "etcd"
- spec:
- serviceName: "etcd"
- replicas: 5
- template:
- metadata:
- name: "etcd"
- labels:
- app: "etcd"
- spec:
- volumes:
- - name: etcd-pvc
- persistentVolumeClaim:
- claimName: etcd-pvc
- containers:
- - name: "etcd"
- image: quay.io/coreos/etcd:latest
- ports:
- - containerPort: 2379
- name: client
- - containerPort: 2380
- name: peer
- env:
- - name: CLUSTER_SIZE
- value: "5"
- - name: SET_NAME
- value: "etcd"
- - name: VOLNAME
- valueFrom:
- fieldRef:
- apiVersion: v1
- fieldPath: metadata.name
- volumeMounts:
- - name: etcd-pvc
- mountPath: /var/lib/etcd
- subPathExpr: $(VOLNAME) # data mounted respectively in each pod
- command:
- - "/bin/sh"
- - "-ecx"
- - |
- chmod 700 /var/lib/etcd
- IP=$(hostname -i)
- PEERS=""
- for i in $(seq 0 $((${CLUSTER_SIZE} - 1))); do
- PEERS="${PEERS}${PEERS:+,}${SET_NAME}-${i}=http://${SET_NAME}-${i}.${SET_NAME}:2380"
- done
- exec etcd --name ${HOSTNAME} \
- --listen-peer-urls http://0.0.0.0:2380 \
- --listen-client-urls http://0.0.0.0:2379 \
- --advertise-client-urls http://${HOSTNAME}.${SET_NAME}.discov:2379 \
- --initial-advertise-peer-urls http://${HOSTNAME}.${SET_NAME}:2380 \
- --initial-cluster ${PEERS} \
- --initial-cluster-state new \
- --logger zap \
- --data-dir /var/lib/etcd \
- --auto-compaction-retention 1
|