1、创建一个实例
# kubectl run kubernetes-bootcamp --image=docker.io/jocatalin/kubernetes-bootcamp:v1 --port=8080
kubectl run --generator=deployment/apps.v1 is DEPRECATED and will be removed in a future version. Use kubectl run --generator=run-pod/v1 or kubectl create instead.
deployment.apps/kubernetes-bootcamp created
这里简单说明:kubernetes-bootcamp为实例名,–image指定docker镜像,–port指定对外提供的端口
2、列出所有的运行pod信息
# kubectl get pods
NAME READY STATUS RESTARTS AGE
busybox 1/1 Running 2 18h
kubernetes-bootcamp-6c5cfd894b-6bqqr 1/1 Running 0 6m36s
3、列出Pod以及运行Pod节点信息
# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
busybox 1/1 Running 2 18h 10.244.1.6 node1 <none> <none>
kubernetes-bootcamp-6c5cfd894b-6bqqr 1/1 Running 0 7m42s 10.244.2.2 node2 <none> <none>
4、映射端口使其能在外部访问
# kubectl expose deployment/kubernetes-bootcamp --type="NodePort" --port 8080
service/kubernetes-bootcamp exposed
5、查看应用被映射到节点的端口
# kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes-bootcamp NodePort 10.108.171.2 <none> 8080:32723/TCP 59s
6、查看运行副本数
# kubectl get deployments
NAME READY UP-TO-DATE AVAILABLE AGE
kubernetes-bootcamp 1/1 1 1 17m
7、增加运行副本
# kubectl scale deployments/kubernetes-bootcamp --replicas=3
deployment.extensions/kubernetes-bootcamp scaled
再次查看
# kubectl get deployment
NAME READY UP-TO-DATE AVAILABLE AGE
kubernetes-bootcamp 3/3 3 3 19m
# kubectl get pods
NAME READY STATUS RESTARTS AGE
busybox 1/1 Running 2 18h
kubernetes-bootcamp-6c5cfd894b-6bqqr 1/1 Running 0 19m
kubernetes-bootcamp-6c5cfd894b-npk42 1/1 Running 0 61s
kubernetes-bootcamp-6c5cfd894b-vx5c5 1/1 Running 0 61s
再次访问,会轮循到不同的pod中
# curl 192.168.152.143:32723
Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-6c5cfd894b-6bqqr | v=1
[root@master ~]# curl 192.168.152.143:32723
Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-6c5cfd894b-npk42 | v=1
[root@master ~]# curl 192.168.152.143:32723
Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-6c5cfd894b-6bqqr | v=1
8、升级应用
# kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcamp=jocatalin/kubernetes-bootcamp:v2
deployment.extensions/kubernetes-bootcamp image updated
升级过程中之前v1版本的Pod状态变为Terminating,同时创建几个running状态的pod
查看升级后的版本
# curl 192.168.152.143:32723
Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-5bf4d5689b-jrv69 | v=2
9、回滚升级后的应用
]# kubectl rollout undo deployments/kubernetes-bootcamp
deployment.extensions/kubernetes-bootcamp rolled back
回滚过程同样是先把状态设定为Terminating,同时启动几个running状态的pod
# kubectl get pods
NAME READY STATUS RESTARTS AGE
busybox 1/1 Running 2 18h
kubernetes-bootcamp-5bf4d5689b-jrv69 1/1 Terminating 0 2m26s
kubernetes-bootcamp-5bf4d5689b-nmnns 1/1 Terminating 0 2m24s
kubernetes-bootcamp-5bf4d5689b-thzqr 1/1 Terminating 0 2m37s
kubernetes-bootcamp-6c5cfd894b-4mz5z 1/1 Running 0 7s
kubernetes-bootcamp-6c5cfd894b-cl929 1/1 Running 0 5s
kubernetes-bootcamp-6c5cfd894b-q2g66 1/1 Running 0 3s