简单说来,StatefulSet其实就是一种升级版的Deployment,大体工作原理如下

1.为每个Pod名字按顺序编号,按顺序启动

# kubectl get po -o wide -l app=nginx
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE
web-0 1/1 Running 0 21s 10.244.0.44 vm-0-8-ubuntu <none>
web-1 1/1 Running 0 14s 10.244.0.45 vm-0-8-ubuntu <none>

删除重建的Pod会使用之前的一模一样的名字

2.通过HeadlessService为Pod编号,在DNS服务器中生成带有编号的DNS记录,从而可以达到通过Pod名字定位到相应的服务

pod-name>.<svc-name>.<namespace>.svc.cluster.local

实现了网络标识的稳定

3.为每个Pod绑定名称对应的PVC,规则如下

<PVC名字>-<StatefulSet名称>-<编号>

在Pod重建的时候会重新绑定上之前的PVC,因为PV和PVC不会被删除,数据还在,所以Statefulset的存储状态是稳定的

总的来说,StatefulSet实现了:1.保证网络标识的稳定 2.保证存储状态的稳定。适合用来部署有状态的应用,而Deloyment认为所有的Pod都是完全一样的,更适合用来操作无状态的应用

最新文章

  1. js严格模式总结
  2. android 遇到问题未处理
  3. poi API
  4. 漫谈可视化Prefuse(三)---Prefuse API数据结构阅读有感
  5. cf219d
  6. Javascript 添加自定义静态方法属性JS清除左右空格
  7. Nutch搜索引擎(第4期)_ Eclipse开发配置
  8. Linux - 重定向与管道
  9. SQL Server 2008 用户SA登录失败(错误18456)之图文解决方法
  10. IOS-连接
  11. Spring框架快速入门之简介
  12. html5+css3 文章的展示demo
  13. 谈谈JavaScript代码混淆
  14. ASP.NET自定义模块
  15. 关于hash和ico的一些关联
  16. 基于 CentOS Mysql 安装与主从同步配置详解
  17. android xml 解析汉字只出来一个字的问题
  18. HTML5 FileReader
  19. Memcached缓存框架
  20. python全栈开发_day31_OSI七层协议和c/s架构

热门文章

  1. ACM-ICPC 2018 南京赛区网络预赛 L. Magical Girl Haze (分层dijkstra)
  2. VUEday01
  3. 解决苹果mac远程桌面无VDI客户端
  4. Python基础知识第八篇(集合)
  5. c++之基础知识
  6. 《大话设计模式》——简单工厂模式(Python版)
  7. 在Mac上Python多版本切换
  8. Java之缓冲流(字节/字符缓冲流)
  9. SQLServer配置镜像,无法将 ALTER DATABASE 命令发送到远程服务器实例,数据库镜像配置未更改。请确保该服务器已连接,然后重试。
  10. C语言笔记 05_判断&amp;循环&amp;函数