Strategy

1
2
3
4
5
6
7
8
# Deployment
spec:
strategy:
type: Recreate/RollingUpdate
# type=RollingUpdate
rollingUpdate:
maxUnavailable: 25%
maxSurge: 25%

Rollout

1
2
3
4
5
6
# Current status
kubectl rollout status deploy/my-deploy
# History
kubectl rollout history ...
# Rollback
kubectl rollout undo ...
1
2
# Easily set image
kubectl set image deploy/my-deploy nginx=nginx:1.9.1

Command & Arguments

  • Ex. the sleeper image

    1
    2
    3
    FROM Ubuntu
    ENTRYPOINT [ "sleep" ]
    CMD [ "5" ]
  • pass arguments

    1
    2
    # For docker command
    docker run --name sleeper sleeper 10
1
2
3
4
5
# For kubernetes
# Ex. Pod
spec:
containers:
- args: [ "10" ]
  • Overwrite entrypoint
    1
    2
    # For docker command
    docker run --name sleeper sleeper --entrypoint sleep 10
1
2
3
4
5
6
# For kubernetes
# Ex. Pod
spec:
containers:
- command: [ "sleep" ]
args: [ "10" ]

Environment Variables

1
2
3
4
5
6
# Ex. Pod
spec:
containers:
- env:
- name: name
value: value

ConfigMaps

1
2
3
# Create
kubectl create configMap my-cm --from-literal=key=value
kubectl create configMap my-cm --from-file=path
1
2
3
4
5
6
7
8
# Create
apiVersion: v1
kind: ConfigMap
metadata:
name: my-config-map
data:
key1: value1
key2: value2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# Usage: Ex. Pod
spec:
containers:
- env:
- name: key1
valueFrom:
configMapKeyRef:
name: my-config-map
key: key1
# Or
envFrom:
- configMapRef:
name: my-config-map
# Or
volumes:
- name: my-volume
configMap:
name: my-config-map

Secret

1
2
3
# Create
kubectl create secret generic my-secret --from-literal=key=value
kubectl create secret generic my-secret --from-file=path
1
2
3
4
5
6
7
apiVersion: v1
kind: Secret
metadata:
name: my-secret
data:
key1: base64-value1
key2: base64-value2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# Usage: Ex. Pod
spec:
containers:
- env:
- name: key1
valueFrom:
secretKeyRef:
name: my-secret
key: key1
# Or
envFrom:
- secretRef:
name: my-secret
# Or
volumes:
- name: my-volume
secret:
secretName: my-config-map

Init Containers

  • Containers that only run at init phase
    1
    2
    3
    4
    5
    6
    7
    8
    # Ex. Pod
    spec:
    initContainers:
    - name: xxx
    image: xxx
    containers:
    - name: xxx
    image: xxx