考点精讲
记忆技巧
StatefulSet 管有状态,Deployment 管无状态
名字带序号:mysql-0、mysql-1
名字带序号:mysql-0、mysql-1
常见误区
- 用 Deployment 部署数据库导致数据/标识丢失
- 漏配 Headless Service 导致网络标识不稳定
- 以为 StatefulSet 自动保证数据持久化(还需 PVC)
真题思路
- 【示例】本页题目为教学模拟题,非真题,仅用于讲解答题思路 下列哪种应用最适合用 StatefulSet 部署?
无状态的 Web 前端 需要稳定网络标识和持久存储的数据库 每个节点跑一个的监控代理 一次性数据批处理任务
答案:B
解析:数据库等有状态应用需要稳定标识与持久存储,用 StatefulSet;无状态前端用 Deployment,监控代理用 DaemonSet,批处理用 Job。
常见问题
Q:StatefulSet 和 Deployment 怎么选
A:有状态、需稳定标识与持久存储的应用用 StatefulSet,无状态应用用 Deployment。
Q:StatefulSet 一定要配 Headless Service 吗
A:需要稳定网络标识时通常要配,靠它提供稳定 DNS。
Q:StatefulSet 会自动持久化数据吗
A:不会,还需为每个 Pod 配 PVC 挂载持久卷。
相关知识
教材出处:第8章 Kubernetes常用的控制器 StatefulSet控制器