Deployment
Create file sleep_deploy.yaml:
apiVersion: apps/v1
kind: Deployment
metadata:
name: sleep
spec:
replicas: 3
selector:
matchLabels:
app: sleep
template:
metadata:
labels:
app: sleep
spec:
restartPolicy: Always
containers:
- image: busybox:1.37.0-glibc
imagePullPolicy: IfNotPresent
name: sleep-busybox
command: ["sh", "-c", "trap exit INT TERM; sleep 1m & wait"]
resources:
requests:
cpu: "1"
memory: 100Mi
limits:
cpu: "1"
memory: 100Mi
Note
restartPolicymust beAlways, which is the default valueselectormust be set and match the labels of template
Apply to the cluster:
$ kubectl apply -f sleep_deploy.yaml
deployment.apps/sleep created
Watch events:
$ kubectl get deploy sleep -owide -w
NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR
sleep 0/3 3 0 0s sleep-busybox busybox:1.37.0-glibc app=sleep
sleep 1/3 3 1 1s sleep-busybox busybox:1.37.0-glibc app=sleep
sleep 2/3 3 2 1s sleep-busybox busybox:1.37.0-glibc app=sleep
sleep 3/3 3 3 1s sleep-busybox busybox:1.37.0-glibc app=sleep
sleep 2/3 3 2 61s sleep-busybox busybox:1.37.0-glibc app=sleep
sleep 1/3 3 1 61s sleep-busybox busybox:1.37.0-glibc app=sleep
sleep 0/3 3 0 61s sleep-busybox busybox:1.37.0-glibc app=sleep
sleep 1/3 3 1 62s sleep-busybox busybox:1.37.0-glibc app=sleep
sleep 2/3 3 2 62s sleep-busybox busybox:1.37.0-glibc app=sleep
sleep 3/3 3 3 62s sleep-busybox busybox:1.37.0-glibc app=sleep
Note the pods exited after 1min and restarted.
If we list the resources when the deployment was 3/3 ready:
$ kubectl get deploy,rs,po -owide
NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR
deployment.apps/sleep 3/3 3 3 13s sleep-busybox busybox:1.37.0-glibc app=sleep
NAME DESIRED CURRENT READY AGE CONTAINERS IMAGES SELECTOR
replicaset.apps/sleep-84fddfd8d6 3 3 3 13s sleep-busybox busybox:1.37.0-glibc app=sleep,pod-template-hash=84fddfd8d6
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
pod/sleep-84fddfd8d6-9w8s2 1/1 Running 0 13s 192.168.135.7 las1 <none> <none>
pod/sleep-84fddfd8d6-mvpjk 1/1 Running 0 13s 192.168.182.25 las3 <none> <none>
pod/sleep-84fddfd8d6-zjpgp 1/1 Running 0 13s 192.168.5.213 las2 <none> <none>