...
1apiVersion: apps/v1
2kind: StatefulSet
3metadata:
4 name: zoo
5spec:
6 serviceName: "zk"
7 replicas: 3
8 selector:
9 matchLabels:
10 app: zk
11 template:
12 metadata:
13 labels:
14 app: zk
15 spec:
16 initContainers:
17 - name: install
18 image: registry.k8s.io/e2e-test-images/pets/zookeeper-installer:1.5
19 imagePullPolicy: Always
20 args:
21 - "--install-into=/opt"
22 - "--work-dir=/work-dir"
23 volumeMounts:
24 - name: opt
25 mountPath: "/opt/"
26 - name: workdir
27 mountPath: "/work-dir"
28 - name: bootstrap
29 image: java:openjdk-8-jre
30 command:
31 - "/work-dir/peer-finder"
32 args:
33 - -on-start="/work-dir/on-start.sh"
34 - "-service=zk"
35 env:
36 - name: POD_NAMESPACE
37 valueFrom:
38 fieldRef:
39 apiVersion: v1
40 fieldPath: metadata.namespace
41 volumeMounts:
42 - name: opt
43 mountPath: "/opt"
44 - name: workdir
45 mountPath: "/work-dir"
46 - name: datadir
47 mountPath: "/tmp/zookeeper"
48 containers:
49 - name: zk
50 image: openjdk:8-jre
51 ports:
52 - containerPort: 2888
53 name: peer
54 - containerPort: 3888
55 name: leader-election
56 command:
57 - /opt/zookeeper/bin/zkServer.sh
58 args:
59 - start-foreground
60 readinessProbe:
61 exec:
62 command:
63 - sh
64 - -c
65 - "/opt/zookeeper/bin/zkCli.sh ls /"
66 initialDelaySeconds: 15
67 timeoutSeconds: 5
68 volumeMounts:
69 - name: datadir
70 mountPath: /tmp/zookeeper
71 - name: opt
72 mountPath: /opt
73 # Mount the work-dir just for debugging
74 - name: workdir
75 mountPath: /work-dir
76 volumes:
77 - name: opt
78 emptyDir: {}
79 - name: workdir
80 emptyDir: {}
81 volumeClaimTemplates:
82 - metadata:
83 name: datadir
84 spec:
85 accessModes: [ "ReadWriteOnce" ]
86 resources:
87 requests:
88 storage: 1Gi
View as plain text