StatefulSet:有状态应用的部署与管理
在Kubernetes中,StatefulSet是一种用于部署有状态应用的重要资源对象。下面将详细介绍StatefulSet的状态持久化、伸缩、删除以及版本发布等操作。
状态持久化
当使用高级数据分片实现自己的存储解决方案并将其作为StatefulSet运行时,可能需要将逻辑分片映射到集群中的物理Pod副本。稳定的DNS名称可用于此映射,确保对每个逻辑分片的查询都能针对正确的Pod进行,无论该Pod是否被重新调度到其他节点或重启。
数据在持久卷(PV)中是持久的,会绑定到具有相同序号的新创建的Pod。以下是一个示例,展示了删除StatefulSet中的所有Pod后,Kubernetes如何重新创建它们:
# 删除所有Pod
$ kubectl delete po -n mysql mysql-stateful-0 mysql-stateful-1 mysql-stateful-2
pod "mysql-stateful-0" deleted
pod "mysql-stateful-1" deleted
pod "mysql-stateful-2" deleted
# 查看重新创建的Pod
$ kubectl get pod -n mysql
NAME READY STATUS RESTARTS AGE
k8sutils 1/1 Running 0 47m
mysql-stateful-0 1/1 Running 0 44s
mys
超级会员免费看
订阅专栏 解锁全文
36

被折叠的 条评论
为什么被折叠?



