StatefulSet 将应用状态抽象成两种情况:
- 拓扑状态
- 启动顺序
- 网络标识
- 存储状态
- 绑定同一数据
Service 原理:
- 请求 -> VIP -> Pod IP
- 请求 -> Service DNS
- Normal Service: Service DNS -> VIP -> Pod IP
- Headless Service: Service DNS -> Pod IP
定义 Headless Service:
- clusterIP: Node
<pod-name>.<svc-name>.<namespace>.svc.cluster.local
apiVersion: v1kind: Servicemetadata:name: nginxlabels:app: nginxspec:ports:- port: 80name: webclusterIP: Noneselector:app: nginx
StatefulSet yaml 示例:
- serviceName


StatefulSet 通过 Headless 来保留网络标识, 通过编号来保留启动顺序.
