Kubernets的有状态部署
StatefulSet是Kubernets中的有状态部署,其特点是:
- 数据存储持久化,通过PVC实现
- 网络地址稳定:重启Pod其PodName和主机名不会改变,通过Headless Service实现
- 有序部署/删除:前一个Pod运行成功,后续的Pod才能启动,而在删除时,也是有序的进行操作(比如Nginx - Apache - Mysql,启动会先启动Mysql,等待Mysql启动后才会启动Apache,同理删除时也会先删除Nginx,然后再删除Apache),通过Init Containers实现
- 有序伸缩:同上
Kubernets中的无状态部署
- ReplicationController:确保应用副本保持在指定的数量,新版本下一般不建议使用
- ReplicaSet:和RC类似,但支持集合操作,比如对大量容器进行操作
- Deployment:自动管理了RS,目前一般都建议使用这种方式,支持滚动更新(先创建新版本,再删除旧版本),注意,Deployment并不关心Pod的创建,而是通过操作RS的方式去实现对Pod的操作
其中,Deployment的滚动更新流程为:
- 首先Deployment会创建一个新的RS(以下旧RS称RS1,新RS称RS2)
- 在RS2中创建新版本的Pod
- 删除RS1中的旧版本Pod(注意,旧的RS1并不会被删除,只是暂时停用,以保证可以回滚数据)
原文地址:https://blog.csdn.net/TineAine/article/details/120388140
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。