000aa4520e
In given manifest, podManagementPolicy is set as Parallel, but in later section of page, the console logs of "kubectl get pods -w -l app=zk" command displays ordered behavior, which is not the actual result in case of Parallel option. Sample logs from doc : NAME READY STATUS RESTARTS AGE zk-0 0/1 Pending 0 0s zk-0 0/1 Pending 0 0s zk-0 0/1 ContainerCreating 0 0s zk-0 0/1 Running 0 19s zk-0 1/1 Running 0 40s zk-1 0/1 Pending 0 0s zk-1 0/1 Pending 0 0s zk-1 0/1 ContainerCreating 0 0s zk-1 0/1 Running 0 18s zk-1 1/1 Running 0 40s zk-2 0/1 Pending 0 0s zk-2 0/1 Pending 0 0s zk-2 0/1 ContainerCreating 0 0s zk-2 0/1 Running 0 19s zk-2 1/1 Running 0 40s ## here pods are created in order Actual results after applying the given manifest : [taher@kubernetes-docker ~]$ kubectl apply -f zookeeper.yaml service/zk-hs created service/zk-cs created poddisruptionbudget.policy/zk-pdb created statefulset.apps/zk created [taher@kubernetes-docker ~]$ kubectl get pods -w -l app=zk NAME READY STATUS RESTARTS AGE zk-0 0/1 Pending 0 3s zk-1 0/1 Pending 0 3s zk-2 0/1 ContainerCreating 0 3s zk-1 0/1 Pending 0 4s zk-0 0/1 Pending 0 4s zk-1 0/1 Pending 0 5s zk-0 0/1 Pending 0 5s zk-1 0/1 Pending 0 5s zk-1 0/1 ContainerCreating 0 5s zk-0 0/1 Pending 0 5s zk-2 0/1 Running 0 19s zk-1 0/1 Running 0 24s zk-2 1/1 Running 0 35s zk-1 1/1 Running 0 37s ## here pods are created in parallel Resolution : Either change the value of podManagementPolicy option to OrderedReady or remove that option, so that StatefulSet will take it's default behavior.
134 lines
2.8 KiB
YAML
134 lines
2.8 KiB
YAML
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: zk-hs
|
|
labels:
|
|
app: zk
|
|
spec:
|
|
ports:
|
|
- port: 2888
|
|
name: server
|
|
- port: 3888
|
|
name: leader-election
|
|
clusterIP: None
|
|
selector:
|
|
app: zk
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: zk-cs
|
|
labels:
|
|
app: zk
|
|
spec:
|
|
ports:
|
|
- port: 2181
|
|
name: client
|
|
selector:
|
|
app: zk
|
|
---
|
|
apiVersion: policy/v1beta1
|
|
kind: PodDisruptionBudget
|
|
metadata:
|
|
name: zk-pdb
|
|
spec:
|
|
selector:
|
|
matchLabels:
|
|
app: zk
|
|
maxUnavailable: 1
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: StatefulSet
|
|
metadata:
|
|
name: zk
|
|
spec:
|
|
selector:
|
|
matchLabels:
|
|
app: zk
|
|
serviceName: zk-hs
|
|
replicas: 3
|
|
updateStrategy:
|
|
type: RollingUpdate
|
|
podManagementPolicy: OrderedReady
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: zk
|
|
spec:
|
|
affinity:
|
|
podAntiAffinity:
|
|
requiredDuringSchedulingIgnoredDuringExecution:
|
|
- labelSelector:
|
|
matchExpressions:
|
|
- key: "app"
|
|
operator: In
|
|
values:
|
|
- zk
|
|
topologyKey: "kubernetes.io/hostname"
|
|
containers:
|
|
- name: kubernetes-zookeeper
|
|
imagePullPolicy: Always
|
|
image: "k8s.gcr.io/kubernetes-zookeeper:1.0-3.4.10"
|
|
resources:
|
|
requests:
|
|
memory: "1Gi"
|
|
cpu: "0.5"
|
|
ports:
|
|
- containerPort: 2181
|
|
name: client
|
|
- containerPort: 2888
|
|
name: server
|
|
- containerPort: 3888
|
|
name: leader-election
|
|
command:
|
|
- sh
|
|
- -c
|
|
- "start-zookeeper \
|
|
--servers=3 \
|
|
--data_dir=/var/lib/zookeeper/data \
|
|
--data_log_dir=/var/lib/zookeeper/data/log \
|
|
--conf_dir=/opt/zookeeper/conf \
|
|
--client_port=2181 \
|
|
--election_port=3888 \
|
|
--server_port=2888 \
|
|
--tick_time=2000 \
|
|
--init_limit=10 \
|
|
--sync_limit=5 \
|
|
--heap=512M \
|
|
--max_client_cnxns=60 \
|
|
--snap_retain_count=3 \
|
|
--purge_interval=12 \
|
|
--max_session_timeout=40000 \
|
|
--min_session_timeout=4000 \
|
|
--log_level=INFO"
|
|
readinessProbe:
|
|
exec:
|
|
command:
|
|
- sh
|
|
- -c
|
|
- "zookeeper-ready 2181"
|
|
initialDelaySeconds: 10
|
|
timeoutSeconds: 5
|
|
livenessProbe:
|
|
exec:
|
|
command:
|
|
- sh
|
|
- -c
|
|
- "zookeeper-ready 2181"
|
|
initialDelaySeconds: 10
|
|
timeoutSeconds: 5
|
|
volumeMounts:
|
|
- name: datadir
|
|
mountPath: /var/lib/zookeeper
|
|
securityContext:
|
|
runAsUser: 1000
|
|
fsGroup: 1000
|
|
volumeClaimTemplates:
|
|
- metadata:
|
|
name: datadir
|
|
spec:
|
|
accessModes: [ "ReadWriteOnce" ]
|
|
resources:
|
|
requests:
|
|
storage: 10Gi
|