1. Open Cluster Management
Cluster Management(OCM) 项目已经在 2021 年 11 月 9 日成为 CNCF 的沙箱项目。OCM 作为一个社区驱动的项目,专注于 Kubernetes 应用程序的多集群和多云场景。
最新 OCM 社区版本 0.6.0 已于 2022 年 1 月 21 日正式发布。详细内容可访问 Open Cluster Management 0.6 发布。
在多集群环境中,不同角色的用户对多集群操作有着不同的需求。比如管理员等用户需要对目标集群进行一些配置, 应用程序开发人员可能希望将工作负载部署到特定集群,这些工作负载可以是 Kubernetes 的 Service、Deployment、ConfigMap 或不同 Kubernetes 对象的捆绑包。这些用户对目标集群会有一些要求,比如:
- 我只想在 Amazon Web Services(AWS) 上配置集群。
- 我只想将工作负载部署到标签为 group=dev 的集群上。
- 我希望工作负载始终在具有最大可分配内存的 3 个集群上运行。
为了选择出目标集群,可以选择在部署管道 (deploy pipeline) 中对直接指定目标集群名称,或使用某种形式的标签选择器。对于对资源有要求的工作负载,需要一个细粒度的调度器来将工作负载分发到具有足够资源的群集。当群集属性更改时,调度结果应该保持动态更新。
在 OCM 中,前面描述的调度功能是通过 Placement 来实现的。在这篇文章中,将介绍 Placement 如何选择到所需的集群,Placement 可以提供的调度功能,以及一些场景下的最佳实践,使用者可以参考示例来编写符合自己要求的 Placement。其他一些高级调度功能,如支持污点 (taints) 和容忍 (tolerations),以及拓扑选择 (spread),正在 OCM 社区[2]讨论中。