kubernetes - 限制每个节点具有相同标签的 pod 数量
问题描述
我有一个包含 2 个节点池的大型 ks 生产集群,每个节点池有 50 个节点,我还有大约 15 种具有不同 CPU 请求和使用率的微服务。
经过研究,我发现其中一个微服务在同一个节点上只能有 2 或 3 个实例,因为这个微服务头的 CPU 使用率特殊。
有什么解决方案可以在 kubernetes 中执行此操作吗?我知道我只能使用 nodeAffinity 在同一个节点中限制一种,但我希望在同一个节点上有 2 个或 3 个。
我找到了这个 alpha 选项: https ://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/ ,但它是 alpha 并且它限制检查仅来自同一命名空间的 pod,以及我的微服务在少数命名空间中,但具有相同的行为
解决方案
如前所述,编写自定义调度程序是实现所需目标的最佳选择。您可以按照这样的教程来实现调度程序,并且您可以将其部署到默认调度程序之外,如此处所述。
您可以为每个 Pod 指定要使用的调度程序。例如,您可以将自定义调度程序配置为仅用于此特定微服务,并将默认调度程序用于所有其他工作负载。
推荐阅读
- sql - sql中三元运算符的使用
- android - 延迟 Activity 上的 Fragment 加载
- javascript - 如何检测JS中的键盘快捷键?(在我的情况下 Alt+Z)
- git - 如何修复 curl 56 GnuTLS recv 错误(-110):TLS 连接未正确终止
- java - 如何配置 Spring Security 以避免“匿名用户”
- android - AAB 存档已使用错误的密钥签名
- android - 转换映射中的 Android LiveData 为空
- android - Android Kotlin - onSharedPreferenceChanged 修饰符覆盖不适用于本地函数
- javascript - 如何在 React 中显示分值?
- ios - 理解 Swift 中的 UIView 动画