【Kubernetes】Deployment 的清理策略

Deployment 的清理策略

在这里插入图片描述

在 Deployment 中配置 spec.revisionHistoryLimit 字段,可以指定其 清理策略。该字段用于指定 Deployment 保留旧 ReplicaSet 的个数,即更新 Pod 前的版本个数。该字段的默认值是 10

创建 revisionhistory-demo.yaml 文件,并在其中输入以下内容:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: revisionhistory-demo
  labels:
    app: nginx
spec:
  revisionHistoryLimit: 1
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 80

🚀 这里将 .spec.revisionHistoryLimit 字段设置成 1 1 1,即只保留 1 1 1 个旧版本。

运行以下命令创建 Deployment。

kubectl apply -f revisionhistory-demo.yaml

将镜像的版本从 nginx:1.14 升级到 nginx:1.7.9

kubectl --record deployment.apps/revisionhistory-demo \
set image deployment.apps/revisionhistory-demo nginx=nginx:1.7.9

执行以下命令追溯修改的历史。

kubectl rollout history deployment revisionhistory-demo

输出的信息如下:

在这里插入图片描述

将镜像的版本从 nginx:1.7.9 升级到 nginx:1.9.1

kubectl --record deployment.apps/revisionhistory-demo \
set image deployment.apps/revisionhistory-demo nginx=nginx:1.9.1

执行以下命令追溯修改的历史。

kubectl rollout history deployment revisionhistory-demo

输出的信息如下:

在这里插入图片描述

🚀 由于 .spec.revisionHistoryLimit 字段被设置成了 1 1 1,所以 Deployment 控制器只会保留 1 1 1 个旧版本,revision 1 版本已经被自动清除了。

将 Deployment 回滚到 revision 1 版本。

kubectl rollout undo deployment revisionhistory-demo --to-revision=1

这时将出现以下错误信息:

在这里插入图片描述

将 Deployment 回滚到 revision 2 版本。

kubectl rollout undo deployment revisionhistory-demo --to-revision=2

重新查看 Deployment 的修改历史。

kubectl rollout history deployment revisionhistory-demo

输出的信息如下:

在这里插入图片描述

🚀 可以看到,即使执行了回滚操作,也会在修改历史记录中增加一个新的版本。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

G皮T

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值