kubernetes云平台管理实战: 高级资源deployment-滚动升级(八)

一、通过文件创建deployment

1、创建deployment文件

[root@k8s-master ~]# cat nginx_deploy.yml 
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  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 all
NAME                      DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
deploy/nginx-deployment   3         3         3            3           17s

NAME             CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
svc/kubernetes   10.254.0.1      <none>        443/TCP        1d
svc/nginx        10.254.145.15   <nodes>       80:30027/TCP   21h

NAME                             DESIRED   CURRENT   READY     AGE
rs/nginx-deployment-2950479891   3         3         3         17s

NAME                                   READY     STATUS    RESTARTS   AGE
po/nginx-deployment-2950479891-3zzdf   1/1       Running   0          17s
po/nginx-deployment-2950479891-6nqn3   1/1       Running   0          17s
po/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 all
NAME         CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
kubernetes   10.254.0.1      <none>        443/TCP        1d
nginx        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 --record
deployment "nginx" created

3、查看

[root@k8s-master ~]# kubectl get all -o wide
NAME           DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
deploy/nginx   5         5         5            0           3s

NAME             CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE       SELECTOR
svc/kubernetes   10.254.0.1      <none>        443/TCP        1d        <none>
svc/nginx        10.254.145.15   <nodes>       80:30027/TCP   22h       app=myweb

NAME                 DESIRED   CURRENT   READY     AGE       CONTAINER(S)   IMAGE(S)                     SELECTOR
rs/nginx-835034785   5         5         0         3s        nginx          10.0.128.0:5000/nginx:1.13   pod-template-hash=835034785,run=nginx

NAME                       READY     STATUS              RESTARTS   AGE       IP        NODE
po/nginx-835034785-b9mnp   0/1       ContainerCreating   0          3s        <none>    k8s-node2
po/nginx-835034785-gp2m5   0/1       ContainerCreating   0          3s        <none>    k8s-node1
po/nginx-835034785-hhz0b   0/1       ContainerCreating   0          3s        <none>    k8s-node1
po/nginx-835034785-mvv4p   0/1       ContainerCreating   0          3s        <none>    k8s-node2
po/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.15
deployment "nginx" image updated
[root@k8s-master ~]# kubectl get all -o wide
NAME           DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
deploy/nginx   5         5         5            5           32s

NAME             CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE       SELECTOR
svc/kubernetes   10.254.0.1      <none>        443/TCP        1d        <none>
svc/nginx        10.254.145.15   <nodes>       80:30027/TCP   22h       app=myweb

NAME                 DESIRED   CURRENT   READY     AGE       CONTAINER(S)   IMAGE(S)                     SELECTOR
rs/nginx-835034785   0         0         0         32s       nginx          10.0.128.0:5000/nginx:1.13   pod-template-hash=835034785,run=nginx
rs/nginx-984850083   5         5         5         14s       nginx          10.0.128.0:5000/nginx:1.15   pod-template-hash=984850083,run=nginx

NAME                       READY     STATUS    RESTARTS   AGE       IP            NODE
po/nginx-984850083-4xt4s   1/1       Running   0          5s        172.16.50.4   k8s-node1
po/nginx-984850083-gk5fq   1/1       Running   0          7s        172.16.50.2   k8s-node1
po/nginx-984850083-mhp7h   1/1       Running   0          13s       172.16.50.3   k8s-node1
po/nginx-984850083-vs93g   1/1       Running   0          14s       172.16.19.4   k8s-node2
po/nginx-984850083-z5px0   1/1       Running   0          11s       172.16.19.5   k8s-node2

四、秒级回滚

1、查看历史版本

[root@k8s-master ~]# kubectl rollout history deployment nginx
deployments "nginx"
REVISION	CHANGE-CAUSE
1		kubectl run nginx --image=10.0.128.0:5000/nginx:1.13 --replicas=5 --record
2		kubectl set image deploy nginx nginx=10.0.128.0:5000/nginx:1.15

2、执行回滚

[root@k8s-master ~]# kubectl rollout undo deployment nginx --to-revision=1
deployment "nginx" rolled back

3、回滚结果

[root@k8s-master ~]# kubectl get all -o wide
NAME           DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
deploy/nginx   5         5         5            5           1m

NAME             CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE       SELECTOR
svc/kubernetes   10.254.0.1      <none>        443/TCP        1d        <none>
svc/nginx        10.254.145.15   <nodes>       80:30027/TCP   22h       app=myweb

NAME                 DESIRED   CURRENT   READY     AGE       CONTAINER(S)   IMAGE(S)                     SELECTOR
rs/nginx-835034785   5         5         5         1m        nginx          10.0.128.0:5000/nginx:1.13   pod-template-hash=835034785,run=nginx
rs/nginx-984850083   0         0         0         1m        nginx          10.0.128.0:5000/nginx:1.15   pod-template-hash=984850083,run=nginx

NAME                       READY     STATUS    RESTARTS   AGE       IP            NODE
po/nginx-835034785-1j1pp   1/1       Running   0          11s       172.16.19.2   k8s-node2
po/nginx-835034785-8jvd0   1/1       Running   0          11s       172.16.50.4   k8s-node1
po/nginx-835034785-9cn2z   1/1       Running   0          6s        172.16.19.3   k8s-node2
po/nginx-835034785-9v5q6   1/1       Running   0          7s        172.16.50.2   k8s-node1
po/nginx-835034785-wwqx7   1/1       Running   0          5s        172.16.50.5   k8s-node1

4、版本测试

[root@k8s-master ~]# curl -I 172.16.50.4
HTTP/1.1 200 OK
Server: nginx/1.13.12
Date: Mon, 21 Jan 2019 11:45:08 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Mon, 09 Apr 2018 16:01:09 GMT
Connection: keep-alive
ETag: "5acb8e45-264"
Accept-Ranges: bytes
posted @ 2019-02-21 11:42  活的潇洒80  阅读(1072)  评论(0编辑  收藏  举报