1 changed files with 167 additions and 0 deletions
@ -0,0 +1,167 @@ |
|||
apiVersion: v1 |
|||
kind: Service |
|||
metadata: |
|||
name: zk-headless |
|||
labels: |
|||
app: zk-headless |
|||
spec: |
|||
ports: |
|||
- port: 2888 |
|||
name: server |
|||
- port: 3888 |
|||
name: leader-election |
|||
clusterIP: None |
|||
selector: |
|||
app: zk |
|||
--- |
|||
apiVersion: v1 |
|||
kind: ConfigMap |
|||
metadata: |
|||
name: zk-config |
|||
data: |
|||
ensemble: "zk-0;zk-1;zk-2" |
|||
jvm.heap: "2G" |
|||
tick: "2000" |
|||
init: "10" |
|||
sync: "5" |
|||
client.cnxns: "60" |
|||
snap.retain: "3" |
|||
purge.interval: "1" |
|||
--- |
|||
apiVersion: policy/v1beta1 |
|||
kind: PodDisruptionBudget |
|||
metadata: |
|||
name: zk-budget |
|||
spec: |
|||
selector: |
|||
matchLabels: |
|||
app: zk |
|||
minAvailable: 2 |
|||
--- |
|||
apiVersion: apps/v1beta1 |
|||
kind: StatefulSet |
|||
metadata: |
|||
name: zk |
|||
spec: |
|||
serviceName: zk-headless |
|||
replicas: 3 |
|||
template: |
|||
metadata: |
|||
labels: |
|||
app: zk |
|||
annotations: |
|||
pod.alpha.kubernetes.io/initialized: "true" |
|||
scheduler.alpha.kubernetes.io/affinity: > |
|||
{ |
|||
"podAntiAffinity": { |
|||
"requiredDuringSchedulingIgnoredDuringExecution": [ |
|||
{ |
|||
"labelSelector": { |
|||
"matchExpressions": [ |
|||
{ |
|||
"key": "app", |
|||
"operator": "In", |
|||
"values": [ "zk-headless" ] |
|||
} |
|||
] |
|||
}, |
|||
"topologyKey": "kubernetes.io/hostname" |
|||
} |
|||
] |
|||
} |
|||
} |
|||
spec: |
|||
containers: |
|||
- name: k8szk |
|||
imagePullPolicy: Always |
|||
image: gcr.io/google_samples/k8szk:v1 |
|||
resources: |
|||
requests: |
|||
memory: "1Gi" |
|||
cpu: "0.5" |
|||
ports: |
|||
- containerPort: 2181 |
|||
name: client |
|||
- containerPort: 2888 |
|||
name: server |
|||
- containerPort: 3888 |
|||
name: leader-election |
|||
env: |
|||
- name : ZK_ENSEMBLE |
|||
valueFrom: |
|||
configMapKeyRef: |
|||
name: zk-config |
|||
key: ensemble |
|||
- name : ZK_HEAP_SIZE |
|||
valueFrom: |
|||
configMapKeyRef: |
|||
name: zk-config |
|||
key: jvm.heap |
|||
- name : ZK_TICK_TIME |
|||
valueFrom: |
|||
configMapKeyRef: |
|||
name: zk-config |
|||
key: tick |
|||
- name : ZK_INIT_LIMIT |
|||
valueFrom: |
|||
configMapKeyRef: |
|||
name: zk-config |
|||
key: init |
|||
- name : ZK_SYNC_LIMIT |
|||
valueFrom: |
|||
configMapKeyRef: |
|||
name: zk-config |
|||
key: tick |
|||
- name : ZK_MAX_CLIENT_CNXNS |
|||
valueFrom: |
|||
configMapKeyRef: |
|||
name: zk-config |
|||
key: client.cnxns |
|||
- name: ZK_SNAP_RETAIN_COUNT |
|||
valueFrom: |
|||
configMapKeyRef: |
|||
name: zk-config |
|||
key: snap.retain |
|||
- name: ZK_PURGE_INTERVAL |
|||
valueFrom: |
|||
configMapKeyRef: |
|||
name: zk-config |
|||
key: purge.interval |
|||
- name: ZK_CLIENT_PORT |
|||
value: "2181" |
|||
- name: ZK_SERVER_PORT |
|||
value: "2888" |
|||
- name: ZK_ELECTION_PORT |
|||
value: "3888" |
|||
command: |
|||
- sh |
|||
- -c |
|||
- zkGenConfig.sh && zkServer.sh start-foreground |
|||
readinessProbe: |
|||
exec: |
|||
command: |
|||
- "zkOk.sh" |
|||
initialDelaySeconds: 15 |
|||
timeoutSeconds: 5 |
|||
livenessProbe: |
|||
exec: |
|||
command: |
|||
- "zkOk.sh" |
|||
initialDelaySeconds: 15 |
|||
timeoutSeconds: 5 |
|||
volumeMounts: |
|||
- name: datadir |
|||
mountPath: /var/lib/zookeeper |
|||
securityContext: |
|||
runAsUser: 1000 |
|||
fsGroup: 1000 |
|||
volumeClaimTemplates: |
|||
- metadata: |
|||
name: datadir |
|||
annotations: |
|||
volume.alpha.kubernetes.io/storage-class: anything |
|||
spec: |
|||
accessModes: [ "ReadWriteOnce" ] |
|||
resources: |
|||
requests: |
|||
storage: 20Gi |
|||
Loading…
Reference in new issue