Deploy App
In this task, we will deploy an application with
Deployment
object type.A better guide: https://kubernetes.io/docs/tutorials/configuration/configure-java-microservice/configure-java-microservice-interactive/
In this task you will learn:
ConfigMap
Tips: get some interesting images from https://www.sohu.com/a/122861143_355150
apiVersion: v1
data:
NAME: Toby
MESSAGE: Deployment
IMAGE: 'http://img.mp.itc.cn/upload/20161228/fbd7ab3c3d5b45a3bacd0c058762a73f_th.jpeg'
kind: ConfigMap
metadata:
name: app-config
k ge configmap
k describe configmap app-config
Deployment
# deploy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: kitty-deployment
labels:
app: kitty
spec:
replicas: 3
selector:
matchLabels:
app: kitty
template:
metadata:
labels:
app: kitty
spec:
containers:
- name: hello
image: tobyqin/hello
envFrom:
- configMapRef:
name: app-config
ports:
- containerPort: 5000
readinessProbe:
httpGet:
path: /
port: 5000
scheme: HTTP
periodSeconds: 15
failureThreshold: 5
timeoutSeconds: 1
livenessProbe:
httpGet:
path: /health
port: 5000
scheme: HTTP
initialDelaySeconds: 60
periodSeconds: 15
successThreshold: 1
failureThreshold: 3
timeoutSeconds: 1
Command
k create -f deploy.yaml
# inspect
$ k get deploy
NAME READY UP-TO-DATE AVAILABLE AGE
kitty-deployment 3/3 3 3 22s
$ k get rs
NAME DESIRED CURRENT READY AGE
kitty-deployment-597484896f 3 3 3 28s
$ k get pod
NAME READY STATUS RESTARTS AGE
kitty-deployment-597484896f-6wjjq 1/1 Running 0 49s
kitty-deployment-597484896f-vhvvt 1/1 Running 0 49s
kitty-deployment-597484896f-w2fx4 1/1 Running 0 49s
$ k exec -it kitty-deployment-597484896f-w2fx4 -- env | sort
FLASK_APP=app
HOME=/root
HOSTNAME=kitty-deployment-597484896f-w2fx4
IMAGE=http://img.mp.itc.cn/upload/20161228/fbd7ab3c3d5b45a3bacd0c058762a73f_th.jpeg
MESSAGE=Deployment
NAME=toby
KUBERNETES_PORT=tcp://10.245.0.1:443
...
Shortcut
# create a deployment
kubectl create deploy my-deploy --image=nginx --port=80 --replicas=2
# get logs of deploymnt
kubectl logs deploy/my-deploy
# scale up deployment
kubectl scale --replicas=3 deploy/my-deploy
# get deployment history
kubectl rollout history deployment/my-deploy
# set deployment image
kubectl set image deployment/my-deploy nginx=nginx:v2
# rollback deployment
kubectl rollout undo deployment/my-deploy