【赵渝强老师】K8s中Deployment控制器与StatefulSet控制器的区别

一、K8s的Deployment与StatefulSets

  在K8s中,Deployment将Pod部署成无状态的应用程序,它只关心Pod的数量、Pod更新方式、使用的镜像和资源限制等。由于是无状态的管理方式,因此Deployment中没有角色和顺序的概念,换句话说:Deployment中没有状态。

  通过使用Deployment,可以让开发人员上线部署Pod、设置Pod的副本、实现Pod的升级与回滚。通过在yaml文件中描述Deployment的目标是什么,Deployment控制器就会自动完成对Pod和Replica Set的管理。Kubernetes运行创建一个新的Deployment,也可以用一个新的Deployment替换旧的Deployment。

  K8s的StatefulSets控制器将Pod部署成有状态的应用程序。通过使用StatefulSets控制器,可以为Pod提供持久存储和持久的唯一性标识符。StatefulSets控制器与Deployment控制器不同的是,StatefulSets控制器为管理的Pod维护了一个有粘性的标识符。无论这些Pod如何被调度,每个Pod的标识符都是永久不变的。这一特点可以满足一些特殊场景的需要,例如:使用存储卷为为Kubernetes集群提供持久型存储时,可以使用StatefulSets控制器作为解决方案的一种。

  下面列举了一些StatefulSets的典型应用场景:

  • 需要唯一的、稳定的网络标识符,即:Pod重新调度后其Pod名称和主机名不变。
  • 需要持久的、稳定的持久化存储,即:Pod重新调度后还是能访问到相同的持久化数据。
  • 需要优雅的、有序的部署应用和扩容缩容,即:Pod的部署和启动是顺序要求的,在部署或者扩- 展的时候要依据定义的顺序依次依次进行。
  • 需要自动的、有序的滚动更新和回滚应用。

  视频讲解如下:

K8s中Deployment控制器与StatefulSet控制器的区别
【赵渝强老师】无状态控制器Deployment与有状态控制器StatefulSet的区别

二、Deployment与StatefulSets的区别

  下表对比了无状态的控制器Deployment与有状态控的制器StatefulSets的主要异同。

相关推荐
从零开始的嵌入式之旅9 分钟前
day32
linux·c语言·经验分享·笔记·嵌入式硬件
秃秃秃秃哇17 分钟前
orin上sensor一帧raw图大小的计算
linux
byte轻骑兵26 分钟前
【BlueZ 】蓝牙配对/绑定基础:BlueZ 中安全机制的入门级源码解析
linux·人工智能·bluez·电脑蓝牙·嵌入式蓝牙
xx~t35 分钟前
嵌入式学习——进程与线程2
linux·c语言·学习·进程与线程
大明二代41 分钟前
使用 Traefik、cert-manager 和 DNS-01 为内网 Kubernetes 服务配置 HTTPS
git·kubernetes·flux
给AI剪纸的打工人44 分钟前
OpenCode怎么接第三方API?自定义Provider与Responses配置实战
linux·数据库·人工智能
lingran__1 小时前
Linux 基础常用指令万字详解(下)|一切皆文件:重定向、管道、日志 与 Shell 原理
linux·运维·服务器·shell·管道·重定向·打包压缩
ouynagda1 小时前
Linux信号与进程间通信学习笔记
linux·笔记·学习
祖力551 小时前
进程间通信(IPC机制):无名通道与有名通道
linux·运维·服务器·进程·通信·进程间通信·ipc
kkkkkkkkkk_Z1 小时前
学嵌入式和Linux应用编程|学习日记Day26:Linux进程完整学习笔记
linux·笔记·学习