美文网首页
kubernetes资源对象之deployment

kubernetes资源对象之deployment

作者: 一舍 | 来源:发表于2020-04-23 10:58 被阅读0次

    Deployment 提供了一个声明式定义 (declarative) 方法来创建 Pod 和 ReplicaSet。

    你只需要在 Deployment 中描述你想要的目标状态,Deployment controller 就会将 Pod 和 Replica Set 的实际状态改变到你描述的目标状态。

    创建Deployment

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx-deployment
    spec:
      replicas: 3
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx:1.7.9
            ports:
            - containerPort: 80
    
    kubectl create -f docs/user-guide/nginx-deployment.yaml --record
    

    Deployment 更新

    Deployment 的 rollout 当且仅当 Deployment 的 pod template中的 label 更新或者镜像更改时被触发。

    kubectl set image deployment/nginx-deployment nginx=nginx:1.9.1
    

    查看rollout状态

    kubectl rollout status deployment/nginx-deployment
    

    Deployment 可以保证在升级时只有一定数量的 Pod 是 down 的。默认的,它会确保至少有比期望的 Pod 数量少一个的 Pod 是 up 状态(最多一个不可用)。

    Deployment 同时也可以确保只创建出超过期望数量的一定数量的 Pod。默认的,它会确保最多比期望的 Pod 数量多一个的 Pod 是 up 的(最多 1 个 surge)。

    Deployment 回滚

    默认情况下,kubernetes 会在系统中保存所有的 Deployment 的 rollout 历史记录,以便你可以随时回退,也就是说当且仅当 Deployment 的 Pod template 被更改,就会创建出一个新的 revision。

    查询历史版本

    kubectl rollout history deployment/nginx-deployment
    

    回退到上一个版本

    kubectl rollout undo deployment/nginx-deployment
    

    回退到指定版本

    kubectl rollout undo deployment/nginx-deployment --to-revision=2
    

    可以通过设置 .spec.revisonHistoryLimit 项来指定 deployment 最多保留多少 revison 历史记录

    相关文章

      网友评论

          本文标题:kubernetes资源对象之deployment

          本文链接:https://www.haomeiwen.com/subject/blsoihtx.html