Kubernetes 工作负载管理:调度、伸缩与资源保护
在 Kubernetes 环境中,工作负载管理是保障应用高效运行的关键。本文将深入探讨工作负载的放置、自动伸缩以及资源保护等方面的内容,帮助你更好地理解和运用 Kubernetes 的相关功能。
1. 工作负载放置与调度偏好
在 Kubernetes 中,工作负载的放置需要考虑多个因素。例如,Web Pod 可能需要运行在有 API Pod 的地方。如果希望只有一个 Web Pod 和一个 API Pod,就需要在 Web Pod 规范中设置反亲和规则来限制其他 Web Pod。
调度偏好之所以复杂,是因为调度器在决策时会考虑众多因素。简单的亲和规则可能无法按预期工作,此时需要研究污点(taints)、节点标签、Pod 标签、资源限制和配额,甚至需要查看控制平面节点上的调度器日志文件。需要注意的是,必需规则如果调度器找不到合适的节点,会阻止 Pod 运行,因此可以考虑设置备用的首选规则。
2. 自动伸缩控制容量
Kubernetes 可以通过添加或删除 Pod 来自动伸缩应用程序,这种伸缩是水平的,它利用现有的节点。此外,还有集群伸缩,主要在云平台中使用,这里主要关注水平 Pod 自动伸缩。
要实现自动伸缩,需要部署一个自动伸缩规范(autoscale spec)来描述如何对 Pod 进行伸缩,但 Kubernetes 只有在能够检查现有 Pod 的负载时才会执行伸缩操作。Kubernetes 项目提供了 metrics - server 组件用于基本的负载检查,有些发行版默认包含该组件,而有些则需要手动部署。
操作步骤
超级会员免费看
订阅专栏 解锁全文
894

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



