k8s deployment

修改pod的labels

[root@node1 data]# kubectl get pod -o wide
NAME             READY   STATUS    RESTARTS   AGE    IP            NODE    NOMINATED NODE   READINESS GATES
lifecycle-demo   1/1     Running   0          100m   10.244.0.38   node1   <none>           <none>
[root@node1 data]# kubectl label pod  lifecycle-demo  aaa=bbb overwrite=True
pod/lifecycle-demo labeled

查看

[root@node1 data]# kubectl get pod -o wide --show-labels
NAME             READY   STATUS    RESTARTS   AGE    IP            NODE    NOMINATED NODE   READINESS GATES   LABELS
lifecycle-demo   1/1     Running   0          102m   10.244.0.38   node1   <none>           <none>            aaa=bbb,overwrite=True

[root@node1 data]# kubectl label pod lifecycle-demo aaa=ccc --overwrite=True
pod/lifecycle-demo labeled
[root@node1 data]# kubectl get pod -o wide --show-labels
NAME             READY   STATUS    RESTARTS   AGE    IP            NODE    NOMINATED NODE   READINESS GATES   LABELS
lifecycle-demo   1/1     Running   0          102m   10.244.0.38   node1   <none>           <none>            aaa=ccc,overwrite=True

deployment

testdeploy.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80

创建deployment 并查看情况


[root@node1 data]# kubectl get deployment
NAME               READY   UP-TO-DATE   AVAILABLE   AGE
nginx-deployment   0/3     3            0           18s
[root@node1 data]# kubectl get rs
NAME                          DESIRED   CURRENT   READY   AGE
nginx-deployment-6b474476c4   3         3         0       24s

[root@node1 data]# kubectl get pod --show-labels
NAME                                READY   STATUS              RESTARTS   AGE    LABELS
lifecycle-demo                      1/1     Running             0          120m   aaa=ccc,overwrite=True
nginx-deployment-6b474476c4-8sgdn   1/1     Running             0          65s    app=nginx,pod-template-hash=6b474476c4
nginx-deployment-6b474476c4-nf6c2   1/1     Running             0          65s    app=nginx,pod-template-hash=6b474476c4
nginx-deployment-6b474476c4-zstvj   0/1     ContainerCreating   0          65s    app=nginx,pod-template-hash=6b474476c4

扩容分片,增加为4


#####扩容
[root@node1 data]# kubectl scale deployment nginx-deployment --replicas=4
deployment.apps/nginx-deployment scaled
[root@node1 data]# kubectl get pods
NAME                                READY   STATUS    RESTARTS   AGE
lifecycle-demo                      1/1     Running   0          123m
nginx-deployment-6b474476c4-6cttj   1/1     Running   0          10s
nginx-deployment-6b474476c4-8sgdn   1/1     Running   0          4m18s
nginx-deployment-6b474476c4-nf6c2   1/1     Running   0          4m18s
nginx-deployment-6b474476c4-zstvj   1/1     Running   0          4m18s  #增加了一个pod


[root@node1 data]# kubectl get rs
NAME                          DESIRED   CURRENT   READY   AGE
nginx-deployment-6b474476c4   4         4         4       10m
[root@node1 data]# kubectl get deployment
NAME               READY   UP-TO-DATE   AVAILABLE   AGE
nginx-deployment   4/4     4            4           11m

滚动更新

修改下方文件

testdeploy.yaml

[root@node1 data]# kubectl apply -f roll_updata.yaml 

[root@node1 data]# kubectl get rs
NAME                          DESIRED   CURRENT   READY   AGE
nginx-deployment-558fc78868   3         3         3       4m16s
nginx-deployment-5cc6c7559b   1         1         0       30s  #可以看到更新出新的rs了
[root@node1 data]# kubectl get pod
NAME                                READY   STATUS    RESTARTS   AGE
lifecycle-demo                      1/1     Running   0          137m
nginx-deployment-5cc6c7559b-78sfk   1/1     Running   0          36s
nginx-deployment-5cc6c7559b-knr4q   1/1     Running   0          75s
nginx-deployment-5cc6c7559b-p8zpv   1/1     Running   0          35s #看到pod已经跟新了

修改文件中的镜像版本

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.12.2      #将版本号修改为此数
        ports:
        - containerPort: 80

应用新的配置并查看状态

[root@node1 data]# kubectl get rs
NAME                          DESIRED   CURRENT   READY   AGE
nginx-deployment-558fc78868   0         0         0       5m27s
nginx-deployment-5cc6c7559b   3         3         3       101s  #可以更新的看到rs生效了

[root@node1 data]# kubectl get pod
NAME                                READY   STATUS    RESTARTS   AGE
lifecycle-demo                      1/1     Running   0          139m
nginx-deployment-5cc6c7559b-78sfk   1/1     Running   0          2m43s
nginx-deployment-5cc6c7559b-knr4q   1/1     Running   0          3m22s
nginx-deployment-5cc6c7559b-p8zpv   1/1     Running   0          2m42s

 

回滚操作

[root@node1 data]# kubectl rollout undo deployment nginx-deployment
deployment.apps/nginx-deployment rolled back
[root@node1 data]# kubectl get rs
NAME                          DESIRED   CURRENT   READY   AGE
nginx-deployment-558fc78868   3         3         2       7m56s
nginx-deployment-5cc6c7559b   1         1         1       4m10s

[root@node1 data]# kubectl get rs
NAME                          DESIRED   CURRENT   READY   AGE  
nginx-deployment-558fc78868   3         3         3       7m58s #过一会儿可以看到rs已经退回到之前的第一个了
nginx-deployment-5cc6c7559b   0         0         0       4m12s

 

 

回滚到指定版本

 

posted on 2020-07-29 18:02  王大拿  阅读(141)  评论(0)    收藏  举报

导航