"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
- RollingUpdate:滚动更新,可以指定maxSurge和maxUnavailable
回滚过程
给大家的福利
零基础入门
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
同时每个成长路线对应的板块都有配套的视频提供:
因篇幅有限,仅展示部分资料
网络安全面试题
绿盟护网行动
还有大家最喜欢的黑客技术
网络安全源码合集+工具包
所有资料共282G,朋友们如果有需要全套《网络安全入门+黑客进阶学习资源包》,可以扫描下方二维码领取(如遇扫码问题,可以在评论区留言领取哦)~
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!