zoukankan      html  css  js  c++  java
  • kubectl更新镜像和回滚命令

    使用kubernetes 进行升级的时候并不需要停止业务,kubectl 支持滚动升级的方式,每次更新一个pod,而不是同时删除整个服务。

    准备实验素材

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: hello-nginx
    spec:
      selector:
        matchLabels:
          name: nginx
      replicas: 3
      template:
        metadata:
          labels:
            name: nginx
        spec:
          containers:
            - name: hello-nginx
              image: nginx:1.7.9
              imagePullPolicy: IfNotPresent
              ports:
                - containerPort: 80
    
    kubectl apply -f hello-nginx.yml --record
    

    更新镜像的语法

    可以不用使用yml配置文件, 直接替换镜像版本

    # kubectl set image deployment  <deploymentName> <containerName>=<image>
    
     kubectl --kubeconfig config-lego-test  set image deployment/hello-nginx hello-nginx=nginx:1.9.2
    

    我们可以通过设置docker:lastTag的方式, 回滚到上一个镜像. 但k8s本身也支持版本记录和回滚.

    查看发布历史

    [root@localhost .kube]# kubectl --kubeconfig config-my  rollout history deployment hello-nginx
    deployment.extensions/hello-nginx 
    REVISION  CHANGE-CAUSE
    1         kubectl apply --kubeconfig=config-lego-test --filename=hello-nginx.yml --record=true
    2         kubectl apply --kubeconfig=config-lego-test --filename=hello-nginx.yml --record=true
    3         kubectl apply --kubeconfig=config-lego-test --filename=hello-nginx.yml --record=true
    4         kubectl apply --kubeconfig=config-lego-test --filename=hello-nginx.yml --record=true
    
    [root@localhost .kube]# kubectl --kubeconfig config-my  rollout history deployment hello-nginx --revision=4
    deployment.extensions/hello-nginx with revision #4
    Pod Template:
      Labels:       app=hello-nginx
            pod-template-hash=6d5c95fcc5
      Annotations:  kubernetes.io/change-cause: kubectl apply --kubeconfig=config-lego-test --filename=hello-nginx.yml --record=true
      Containers:
       hello-nginx:
        Image:      nginx:1.9.2
        Port:       8080/TCP
        Host Port:  0/TCP
        Requests:
          cpu:      250m
          memory:   512Mi
        Environment:        <none>
        Mounts:     <none>
      Volumes:      <none>
    
    
    

    回滚到上一个版本

    比如, 刚才查看了最近的几条发布历史记录, 现在回滚到上一个版本, 即revision=3.

    [root@localhost .kube]# kubectl --kubeconfig config-lego-test  rollout undo deployment hello-nginx
    deployment.extensions/hello-nginx rolled back
    
    [root@localhost .kube]# 
    [root@localhost .kube]# kubectl --kubeconfig config-lego-test  rollout history deployment hello-nginx
    deployment.extensions/hello-nginx 
    REVISION  CHANGE-CAUSE
    1         kubectl apply --kubeconfig=config-lego-test --filename=hello-nginx.yml --record=true
    2         kubectl apply --kubeconfig=config-lego-test --filename=hello-nginx.yml --record=true
    4         kubectl apply --kubeconfig=config-lego-test --filename=hello-nginx.yml --record=true
    5         kubectl apply --kubeconfig=config-lego-test --filename=hello-nginx.yml --record=true
    

    可以发现, revision=3没了, 多个了一个revison=5. describe一下, 可以看到, 确实是第3个版本的镜像.

    回滚指定版本

    除了上面直接回滚到上一次, 也可以指定具体某个版本. 比如回滚到revision=1.

     kubectl rollout undo deployment/hello-nginx --to-revision=1
    

    ps: deployment/hello-nginx 表示 deployment hello-nginx

    查看回滚状态

    [root@localhost .kube]# kubectl --kubeconfig config-lego-test  rollout status deployment hello-nginx       
    deployment "hello-nginx" successfully rolled out
    

    参考

  • 相关阅读:
    【Linux】gvim封装至gvi命令
    unity, GUI.Button texture is black
    建了个百度贴吧:图形底层吧
    unity, imageEffect在android上不显示的问题
    3dmax fx shader, vertex color
    unity, editorWindow lose data when enter play mode
    unity, undo
    unity, editorWindow update计时
    unity, imageEffect的最后一步blit所用的shader,应该关闭zwrite和ztest
    unity, GUIStyle and Skin
  • 原文地址:https://www.cnblogs.com/woshimrf/p/13093212.html
Copyright © 2011-2022 走看看