kubernetes - 将部署匹配到特定的节点池
问题描述
我正在寻找是否可以将特定部署分配给特定节点池的方法。
我打算使用 kubernetes 部署一个大型应用程序。我想知道是否有一种方法可以将部署分配给特定的节点池。换句话说,我们有 3 种类型的服务:
- 通用服务、低性能和低副本数
- 需要监控服务、高 I/O 和高性能服务器
- 模块服务,最苛刻的服务,我们的目标是为此分配我们预算的最大部分。
所以很明显,我们希望最好地将节点分配给特定的部署,这样就不会浪费资源,例如低层服务器节点池 X 将仅由通用服务部署使用,高层服务器节点池 Y 将仅由监控服务使用,并且最高层的服务器只会被模块服务使用。
我知道有大量文章讨论 pod 亲和力和其他相关内容,但我似乎无法找到与以下内容匹配的任何内容:
How to assign Deployment to specific node pool
提前致谢!
解决方案
另一种方法(除了 Yayotron 提出的)是使用 NodeAffinity 和 AntiAffinity。有关更多信息,请查看此处的官方文档:https ://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
污点和容忍度非常严格,根本不可能在其他节点上进行调度。使用 Affinity 和 Antiaffinity,您可以指定您希望它是严格的 (RequiredDuringSchedulingIgnoredDuringExecution) 还是软限制 (PreferredDuring....)
推荐阅读
- java - “java.lang.ClassCastException:org.apache.derby.client.net.NetConnection 不能转换为 smartdatabase.Connection”有人知道为什么吗?
- amazon-web-services - 如何在 AWS SES HTML 模板中添加高级 if 条件?
- ceph - 许多 rbd_data 文件未链接到任何 ceph 映像
- android - geolocator 6.0.0+1 distanceBetween() 无法正常工作
- sql - 如何在 oracle 11g 中获取分层连接数据的根
- java - Java 中 BigDecimal 数字的错误计算
- spring-cloud-stream - 无法从应用程序 yml 为 Spring 云流应用程序创建优先级队列
- java - 在 spring 中使用 Quartz 执行 Job 时出错
- python - 数据框、烧瓶和 wtf
- python - 在 Django 中使用查询的问题