You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
1.8 KiB
YAML
65 lines
1.8 KiB
YAML
4 years ago
|
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
|