微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Kubernets之部署方式

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的滚动更新流程为:

  1. 首先Deployment会创建一个新的RS(以下旧RS称RS1,新RS称RS2)
  2. 在RS2中创建新版本的Pod
  3. 删除RS1中的旧版本Pod(注意,旧的RS1并不会被删除,只是暂时停用,以保证可以回滚数据)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐