一、通过文件创建deployment
1、创建deployment文件
[root@k8s-master ~]# cat nginx_deploy.yml apiVersion: extensions/v1beta1kind: Deploymentmetadata: ?name: nginx-deploymentspec: ?replicas: 3 ?template: ???metadata: ?????labels: ???????app: nginx ????spec: ?????containers: ?????- name: nginx ???????image: 10.0.128.0:5000/nginx:1.13 ???????ports: ???????- containerPort: 80
2、启动deployment
[root@k8s-master ~]# kubectl create -f nginx_deploy.yml deployment "nginx-deployment" created
3、查看deployment状态
[root@k8s-master ~]# kubectl get allNAME ?????????????????????DESIRED ??CURRENT ??UP-TO-DATE ??AVAILABLE ??AGEdeploy/nginx-deployment ??3 ????????3 ????????3 ???????????3 ??????????17sNAME ????????????CLUSTER-IP ?????EXTERNAL-IP ??PORT(S) ???????AGEsvc/kubernetes ??10.254.0.1 ?????<none> ???????443/TCP ???????1dsvc/nginx ???????10.254.145.15 ??<nodes> ??????80:30027/TCP ??21hNAME ????????????????????????????DESIRED ??CURRENT ??READY ????AGErs/nginx-deployment-2950479891 ??3 ????????3 ????????3 ????????17sNAME ??????????????????????????????????READY ????STATUS ???RESTARTS ??AGEpo/nginx-deployment-2950479891-3zzdf ??1/1 ??????Running ??0 ?????????17spo/nginx-deployment-2950479891-6nqn3 ??1/1 ??????Running ??0 ?????????17spo/nginx-deployment-2950479891-wxxr5 ??1/1 ??????Running ??0 ?????????17s
二、通过命令行创建deployment
1、删除方式1创建的deployment
[root@k8s-master ~]# kubectl delete -f nginx_deploy.yml deployment "nginx-deployment" deleted[root@k8s-master ~]# kubectl get allNAME ????????CLUSTER-IP ?????EXTERNAL-IP ??PORT(S) ???????AGEkubernetes ??10.254.0.1 ?????<none> ???????443/TCP ???????1dnginx ???????10.254.145.15 ??<nodes> ??????80:30027/TCP ??21h
2、命令创建
[root@k8s-master ~]# kubectl run nginx --image=10.0.128.0:5000/nginx:1.13 --replicas=5 --recorddeployment "nginx" created
3、查看
[root@k8s-master ~]# kubectl get all -o wideNAME ??????????DESIRED ??CURRENT ??UP-TO-DATE ??AVAILABLE ??AGEdeploy/nginx ??5 ????????5 ????????5 ???????????0 ??????????3sNAME ????????????CLUSTER-IP ?????EXTERNAL-IP ??PORT(S) ???????AGE ??????SELECTORsvc/kubernetes ??10.254.0.1 ?????<none> ???????443/TCP ???????1d ???????<none>svc/nginx ???????10.254.145.15 ??<nodes> ??????80:30027/TCP ??22h ??????app=mywebNAME ????????????????DESIRED ??CURRENT ??READY ????AGE ??????CONTAINER(S) ??IMAGE(S) ????????????????????SELECTORrs/nginx-835034785 ??5 ????????5 ????????0 ????????3s ???????nginx ?????????10.0.128.0:5000/nginx:1.13 ??pod-template-hash=835034785,run=nginxNAME ??????????????????????READY ????STATUS ?????????????RESTARTS ??AGE ??????IP ???????NODEpo/nginx-835034785-b9mnp ??0/1 ??????ContainerCreating ??0 ?????????3s ???????<none> ???k8s-node2po/nginx-835034785-gp2m5 ??0/1 ??????ContainerCreating ??0 ?????????3s ???????<none> ???k8s-node1po/nginx-835034785-hhz0b ??0/1 ??????ContainerCreating ??0 ?????????3s ???????<none> ???k8s-node1po/nginx-835034785-mvv4p ??0/1 ??????ContainerCreating ??0 ?????????3s ???????<none> ???k8s-node2po/nginx-835034785-x6mjp ??0/1 ??????ContainerCreating ??0 ?????????3s ???????<none> ???k8s-node1
4、升级镜像版本
[root@k8s-master ~]# ?kubectl set image deploy nginx nginx=10.0.128.0:5000/nginx:1.15deployment "nginx" image updated[root@k8s-master ~]# kubectl get all -o wideNAME ??????????DESIRED ??CURRENT ??UP-TO-DATE ??AVAILABLE ??AGEdeploy/nginx ??5 ????????5 ????????5 ???????????5 ??????????32sNAME ????????????CLUSTER-IP ?????EXTERNAL-IP ??PORT(S) ???????AGE ??????SELECTORsvc/kubernetes ??10.254.0.1 ?????<none> ???????443/TCP ???????1d ???????<none>svc/nginx ???????10.254.145.15 ??<nodes> ??????80:30027/TCP ??22h ??????app=mywebNAME ????????????????DESIRED ??CURRENT ??READY ????AGE ??????CONTAINER(S) ??IMAGE(S) ????????????????????SELECTORrs/nginx-835034785 ??0 ????????0 ????????0 ????????32s ??????nginx ?????????10.0.128.0:5000/nginx:1.13 ??pod-template-hash=835034785,run=nginxrs/nginx-984850083 ??5 ????????5 ????????5 ????????14s ??????nginx ?????????10.0.128.0:5000/nginx:1.15 ??pod-template-hash=984850083,run=nginxNAME ??????????????????????READY ????STATUS ???RESTARTS ??AGE ??????IP ???????????NODEpo/nginx-984850083-4xt4s ??1/1 ??????Running ??0 ?????????5s ???????172.16.50.4 ??k8s-node1po/nginx-984850083-gk5fq ??1/1 ??????Running ??0 ?????????7s ???????172.16.50.2 ??k8s-node1po/nginx-984850083-mhp7h ??1/1 ??????Running ??0 ?????????13s ??????172.16.50.3 ??k8s-node1po/nginx-984850083-vs93g ??1/1 ??????Running ??0 ?????????14s ??????172.16.19.4 ??k8s-node2po/nginx-984850083-z5px0 ??1/1 ??????Running ??0 ?????????11s ??????172.16.19.5 ??k8s-node2
四、秒级回滚
1、查看历史版本
[root@k8s-master ~]# kubectl rollout history deployment nginxdeployments "nginx"REVISIONCHANGE-CAUSE1kubectl run nginx --image=10.0.128.0:5000/nginx:1.13 --replicas=5 --record2kubectl set image deploy nginx nginx=10.0.128.0:5000/nginx:1.15
2、执行回滚
[root@k8s-master ~]# kubectl rollout undo deployment nginx --to-revision=1deployment "nginx" rolled back
3、回滚结果
[root@k8s-master ~]# kubectl get all -o wideNAME ??????????DESIRED ??CURRENT ??UP-TO-DATE ??AVAILABLE ??AGEdeploy/nginx ??5 ????????5 ????????5 ???????????5 ??????????1mNAME ????????????CLUSTER-IP ?????EXTERNAL-IP ??PORT(S) ???????AGE ??????SELECTORsvc/kubernetes ??10.254.0.1 ?????<none> ???????443/TCP ???????1d ???????<none>svc/nginx ???????10.254.145.15 ??<nodes> ??????80:30027/TCP ??22h ??????app=mywebNAME ????????????????DESIRED ??CURRENT ??READY ????AGE ??????CONTAINER(S) ??IMAGE(S) ????????????????????SELECTORrs/nginx-835034785 ??5 ????????5 ????????5 ????????1m ???????nginx ?????????10.0.128.0:5000/nginx:1.13 ??pod-template-hash=835034785,run=nginxrs/nginx-984850083 ??0 ????????0 ????????0 ????????1m ???????nginx ?????????10.0.128.0:5000/nginx:1.15 ??pod-template-hash=984850083,run=nginxNAME ??????????????????????READY ????STATUS ???RESTARTS ??AGE ??????IP ???????????NODEpo/nginx-835034785-1j1pp ??1/1 ??????Running ??0 ?????????11s ??????172.16.19.2 ??k8s-node2po/nginx-835034785-8jvd0 ??1/1 ??????Running ??0 ?????????11s ??????172.16.50.4 ??k8s-node1po/nginx-835034785-9cn2z ??1/1 ??????Running ??0 ?????????6s ???????172.16.19.3 ??k8s-node2po/nginx-835034785-9v5q6 ??1/1 ??????Running ??0 ?????????7s ???????172.16.50.2 ??k8s-node1po/nginx-835034785-wwqx7 ??1/1 ??????Running ??0 ?????????5s ???????172.16.50.5 ??k8s-node1
4、版本测试
[root@k8s-master ~]# curl -I 172.16.50.4HTTP/1.1 200 OKServer: nginx/1.13.12Date: Mon, 21 Jan 2019 11:45:08 GMTContent-Type: text/htmlContent-Length: 612Last-Modified: Mon, 09 Apr 2018 16:01:09 GMTConnection: keep-aliveETag: "5acb8e45-264"Accept-Ranges: bytes
kubernetes云平台管理实战: 高级资源deployment-滚动升级(八)
原文地址:https://www.cnblogs.com/luoahong/p/10302601.html