華為云計算 云知識 有狀態(tài)應用(StatefulSet)概念介紹
有狀態(tài)應用(StatefulSet)概念介紹

基于社區(qū)對有狀態(tài)應用的通用需求,K8S設計了一種有狀態(tài)應用對象,也即StatefulSet。它可以為用戶提供一組具有穩(wěn)定、有序、唯一特性的應用實例集合。如下圖所示:

1. 穩(wěn)定

穩(wěn)定的podName:{stsName}-{序號[0-n]}

穩(wěn)定的網絡標識: {podName}. {headless-svcName}.{namespace}.svc.cluster.local

穩(wěn)定的存儲關系:{volumeClaimTemplatesName}-{podName}

2. 有序

按照編號從小到大順序的部署:0 ~ n

按照編號從大到小進行刪除:n ~ 0

支持有序的擴縮容和升級策略

3. 唯一

每個pod擁有一個唯一的網絡標識: {podName}. {headless-svcName}.{namespace}.svc.cluster.local

StatefulSet特性

從下圖可以看出,與Deployment通過ReplicaSet來管理pod生命周期不同,StatefulSet是直接管理pod的。

StatefulSet直接管理pod