k8s亲和性调度

8 9月

k8s

Kubernetes(k8s)是自动化容器操作的开源平台,这些操作包括部署,调度和节点集群间扩展。

k8s并不单单是Docker的管理平台,它还支持其他容器技术,只是更多的我们使用的是Docker而已。

k8s的调度能力是一大特色,让人不需要关注Pod中具体的部署、调度细节等等,但是有时候我们会有一些特别的需求,需要调度能够满足。

调度需求

列举一些常见的调度需求:

  1. 希望能够在不同的机房部署(异地)
  2. 对于服务X有很强依赖,希望能够部署到同一个网络中(减少网络开销)
  3. 应用对于某种资源要求很高,尽量部署在特定的机器上(比如GPU资源消耗大)

k8s默认的调度规则如果不能满足,就需要使用别的特性来满足了,这里是k8s自带的Affinity配置。

例子

来看一下强依赖的例子,希望调度能够满足部署到一起

假设强依赖的服务是service-X,那么这种关系是Pod和Pod的,使用podAffinity

如果是我们提到的希望部署到特定的节点上的,可以使用nodeAffinity

参考

https://www.bladewan.com/2018/08/12/kubernetes_affinty/

发表评论

电子邮件地址不会被公开。