2024年网安最新k8s学习-Deployment(模板、更新、扩缩容、回滚等)

"spec"是期望的内容,包含容器副本数、模板等。

实战

创建

保存上面的模板为deploy-nginx.yaml
命令:

kubectl create -f deploy-nginx.yaml -n killer

结果:
在这里插入图片描述
稍等两分钟,可以看到容器都起来了
在这里插入图片描述
也可以看到rs
查看更多信息:

[root@k8s-master01 deploy]# kubectl get deploy -n killer -owide
NAME               READY   UP-TO-DATE   AVAILABLE   AGE   CONTAINERS   IMAGES         SELECTOR
nginx-deployment   3/3     3            3           3m    nginx        nginx:latest   app=nginx

  • NAME: Deployment名称
  • READY:Pod的状态,已经Ready的个数
  • UP-TO-DATE:已经达到期望状态的被更新的副本数
  • AVAILABLE:已经可以用的副本数
  • AGE:显示应用程序运行的时间
  • CONTAINERS:容器名称
  • IMAGES:容器的镜像
  • SELECTOR:管理的Pod的标签

更新

没有记录的更新,使用edit即可
在这里插入图片描述
由于之后需要回滚,因此需要记录版本,可以使用set命令

kubectl set image deploy nginx-deployment nginx=nginx:latest --record

在这里插入图片描述

回滚(rollback)

查看历史版本

命令

 kubectl rollout history deploy nginx-deployment -n killer

结果
在这里插入图片描述
再更新一次,然后查看历史记录
在这里插入图片描述

回滚到上一版本

发布应用时经常灰度发布,一旦发布出错,一般会回滚到上一版本
命令

kubectl rollout undo deploy nginx-deployment -n killer

结果
在这里插入图片描述

查看与回滚到指定版本

查看指定版本
命令

kubectl rollout history deploy nginx-deployment --revision=5

结果
在这里插入图片描述
回滚到指定版本
命令

kubectl rollout undo deploy nginx-deployment --to-revision=4 -n killer

结果
在这里插入图片描述
可以看到,回滚后yaml也跟着改了

扩缩容

命令

kubectl scale --replicas=2 deploy nginx-deployment -n killer

结果
在这里插入图片描述

暂停和恢复

暂停
命令

kubectl rollout pause deploy nginx-deployment -n killer

结果
在这里插入图片描述
恢复
命令

kubectl rollout resume deploy nginx-deployment -n killer

结果
在这里插入图片描述

删除

想要删除应用,就需要删除deploy,而不是pod,否则会一直创建新的Pod。
命令

kubectl delete deploy nginx-deployment -n killer

结果
在这里插入图片描述

注意项

yaml的一些字段

部分yaml如下:

spec:
  revisionHistoryLimit: 10
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
status:
  availableReplicas: 3
  conditions:
  - lastTransitionTime: "2022-06-12T17:06:16Z"
    lastUpdateTime: "2022-06-12T17:06:16Z"
    message: Deployment has minimum availability.
    reason: MinimumReplicasAvailable
    status: "True"
    type: Available
  - lastTransitionTime: "2022-06-12T17:25:23Z"
    lastUpdateTime: "2022-06-12T17:25:30Z"
    message: ReplicaSet "nginx-deployment-786b576769" has successfully progressed.
    reason: NewReplicaSetAvailable
    status: "True"
    type: Progressing
  observedGeneration: 11
  readyReplicas: 3
  replicas: 3
  updatedReplicas: 3

  • .spec.revisionHistoryLimit:设置保留RS旧的revision的个数,设置为0的话,不保留历史数据
  • .spec.minReadySeconds:可选参数,指定新创建的Pod在没有任何容器崩溃的情况下视为Ready最小的秒数,默认为0,即一旦被创建就视为可用。
  • .spec.strategy.type:更新deployment的方式,默认是RollingUpdate
    • RollingUpdate:滚动更新,可以指定maxSurge和maxUnavailable
      • maxUnavailable:指定在回滚或更新时最大不可用的Pod的数量,可选字段,默认25%,可以设置成数字或百分比,如果该值为0,那么maxSurge就不能0
      • maxSurge:可以超过期望值的最大Pod数,可选字段,默认为25%,可以设置成数字或百分比,如果该值为0,那么maxUnavailable不能为0
    • Recreate:重建,先删除旧的Pod,在创建新的Pod

回滚过程

给大家的福利

零基础入门

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

同时每个成长路线对应的板块都有配套的视频提供:

在这里插入图片描述

因篇幅有限,仅展示部分资料

网络安全面试题

绿盟护网行动

还有大家最喜欢的黑客技术

网络安全源码合集+工具包

所有资料共282G,朋友们如果有需要全套《网络安全入门+黑客进阶学习资源包》,可以扫描下方二维码领取(如遇扫码问题,可以在评论区留言领取哦)~

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 26
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kubernetes中,我们可以通过滚动更新来实现零停机不停服发布服务。滚动更新是一种逐步替换Pod的方法,它允许我们在不停机的情况下将新版本的应用程序逐步引入生产环境。 以下是实现零停机不停服发布服务的步骤: 1. 创建Deployment资源 首先,我们需要创建一个Deployment资源,用于管理我们的应用程序。Deployment资源可以自动创建和管理Pod,确保我们的应用程序在任何时候都有指定数量的Pod在运行。 2. 更新应用程序镜像 接下来,我们需要更新应用程序的镜像,以便将新版本的应用程序引入生产环境。我们可以通过修改Deployment资源的镜像字段来更新应用程序镜像。 3. 逐步替换Pod 当我们更新Deployment资源的镜像字段时,Kubernetes会自动创建新的Pod,并逐步替换旧的Pod。默认情况下,每次更新会替换25%的Pod,直到所有Pod都被替换为止。 4. 检查更新状态 在进行滚动更新时,我们可以使用kubectl rollout status命令来检查更新状态。该命令将显示Deployment更新进度,以及新旧Pod的状态。 5. 回滚更新 如果在滚动更新过程中发生了问题,我们可以使用kubectl rollout undo命令来回滚更新。该命令将自动将Deployment回滚到上一个版本,并重新创建旧版本的Pod。 通过上述步骤,我们可以实现零停机不停服发布服务,确保我们的应用程序在更新过程中始终可用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值