2023-06-26 13:55:08 +02:00

146 lines
3.9 KiB
YAML

---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: "zookeeper"
labels:
app.kubernetes.io/name: "zookeeper"
app.kubernetes.io/component: "server"
spec:
podManagementPolicy: "Parallel"
replicas: 1
serviceName: "zookeeper-headless"
template:
metadata:
labels:
app.kubernetes.io/component: "server"
spec:
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 100
podAffinityTerm:
labelSelector:
matchExpressions:
- key: "app.kubernetes.io/name"
operator: In
values:
- "zookeeper"
- key: "app.kubernetes.io/component"
operator: In
values:
- "server"
topologyKey: "kubernetes.io/hostname"
terminationGracePeriodSeconds: 1800
serviceAccountName: "zookeeper"
containers:
- name: "zookeeper"
securityContext:
runAsUser: 1000
runAsGroup: 1000
image: "zookeeper"
command:
- "/bin/bash"
- "-xec"
- "/config-scripts/run"
ports:
- containerPort: 2281
name: "client"
- containerPort: 2888
name: "server"
- containerPort: 3888
name: "election"
livenessProbe:
exec:
command:
- sh
- /config-scripts/ok
initialDelaySeconds: 20
periodSeconds: 30
timeoutSeconds: 5
failureThreshold: 2
successThreshold: 1
readinessProbe:
exec:
command:
- sh
- /config-scripts/ready
initialDelaySeconds: 20
periodSeconds: 30
timeoutSeconds: 5
failureThreshold: 2
successThreshold: 1
env:
- name: ZK_REPLICAS
value: "3"
- name: JMXAUTH
value: "false"
- name: JMXDISABLE
value: "false"
- name: JMXPORT
value: "1099"
- name: JMXSSL
value: "false"
- name: ZK_SYNC_LIMIT
value: "10"
- name: ZK_TICK_TIME
value: "2000"
- name: ZK_PURGE_INTERVAL
value: "6"
- name: ZK_SNAP_RETAIN_COUNT
value: "3"
- name: ZOO_INIT_LIMIT
value: "5"
- name: ZOO_MAX_CLIENT_CNXNS
value: "60"
- name: ZOO_PORT
value: "2181"
- name: ZOO_STANDALONE_ENABLED
value: "false"
- name: ZOO_TICK_TIME
value: "2000"
resources:
limits:
cpu: "100m"
memory: "2Gi"
requests:
cpu: "20m"
memory: "1Gi"
volumeMounts:
- name: data
mountPath: /data
- name: zookeeper-server-tls
mountPath: /tls/server
readOnly: true
- name: zookeeper-client-tls
mountPath: /tls/client
readOnly: true
- name: config
mountPath: /config-scripts
volumes:
- name: config
configMap:
name: zookeeper-config
defaultMode: 0555
- name: zookeeper-server-tls
secret:
secretName: zookeeper-server-tls
- name: zookeeper-client-tls
secret:
secretName: zookeeper-server-tls
updateStrategy:
type: "RollingUpdate"
volumeClaimTemplates:
- metadata:
name: "data"
spec:
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: "1Gi"