Kubernetes 中有状态应用管理、准入控制与授权最佳实践
有状态集(StatefulSet)和操作符(Operator)最佳实践
大型分布式有状态应用,往往需要复杂的管理和配置操作,Kubernetes 的有状态集和操作符能为其带来诸多益处。不过,操作符仍在不断发展中,但得到了社区的广泛支持。以下是基于当前能力的一些最佳实践:
1. 谨慎使用有状态集 :有状态应用通常需要更深入的管理,而编排器目前还难以很好地处理这些管理工作。
2. 手动创建无头服务 :有状态集的无头服务不会自动创建,必须在部署时手动创建,以便将 Pod 作为独立节点进行寻址。
3. 序数命名与扩展不意味需要持久卷 :当应用需要序数命名和可靠的扩展时,并不一定意味着需要分配持久卷。
4. 处理无响应节点上的 Pod :如果集群中的某个节点无响应,有状态集中的 Pod 不会自动删除,而是会在宽限期后进入“Terminating”或“Unknown”状态。清除这些 Pod 的方法有:从集群中移除节点对象;kubelet 恢复工作并直接删除 Pod;使用操作符强制删除 Pod。强制删除应作为最后手段,且要确保被删除 Pod 所在的节点不会重新上线,否则集群中会出现两个同名的 Pod。可使用以下命令强制删除 Pod:
kubectl delete pod nginx-0 --grace-period=0 --force
Kubernetes有状态应用管理与控制授权实践
超级会员免费看
订阅专栏 解锁全文

19

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



