85 lines
2.3 KiB
YAML
85 lines
2.3 KiB
YAML
apiVersion: apps/v1
|
|
kind: StatefulSet
|
|
metadata:
|
|
name: consul
|
|
spec:
|
|
serviceName: consul
|
|
replicas: 3
|
|
selector:
|
|
matchLabels:
|
|
app: consul
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: consul
|
|
spec:
|
|
securityContext:
|
|
fsGroup: 1000
|
|
containers:
|
|
- name: consul
|
|
image: "consul:1.9.1"
|
|
env:
|
|
- name: POD_IP
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: status.podIP
|
|
- name: POD_NAME
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: metadata.name
|
|
- name: GOSSIP_ENCRYPTION_KEY
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: consul
|
|
key: gossip-encryption-key
|
|
- name: NAMESPACE
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: metadata.namespace
|
|
args:
|
|
- "agent"
|
|
- "-advertise=$(POD_IP)"
|
|
- "-node=$(POD_NAME)"
|
|
- "-bind=0.0.0.0"
|
|
- "-bootstrap-expect=3"
|
|
- "-retry-join=consul-0.consul.$(NAMESPACE).svc.cluster.local"
|
|
- "-retry-join=consul-1.consul.$(NAMESPACE).svc.cluster.local"
|
|
- "-retry-join=consul-2.consul.$(NAMESPACE).svc.cluster.local"
|
|
- "-client=0.0.0.0"
|
|
- "-datacenter=dc1"
|
|
- "-data-dir=/consul/data"
|
|
- "-domain=cluster.local"
|
|
- "-server"
|
|
- "-ui"
|
|
- "-disable-host-node-id"
|
|
lifecycle:
|
|
preStop:
|
|
exec:
|
|
command:
|
|
- /bin/sh
|
|
- -c
|
|
- consul leave
|
|
ports:
|
|
- containerPort: 8500
|
|
name: ui-port
|
|
- containerPort: 8400
|
|
name: alt-port
|
|
- containerPort: 53
|
|
name: udp-port
|
|
- containerPort: 8443
|
|
name: https-port
|
|
- containerPort: 8080
|
|
name: http-port
|
|
- containerPort: 8301
|
|
name: serflan
|
|
- containerPort: 8302
|
|
name: serfwan
|
|
- containerPort: 8600
|
|
name: consuldns
|
|
- containerPort: 8300
|
|
name: server
|
|
volumes:
|
|
- name: config
|
|
configMap:
|
|
name: consul
|