亲和性(affinity) 如何理解拓扑域(topologyKey)?
亲和性(affinity) 如何理解拓扑域(topologyKey)?官方描述pod 间亲和性与反亲和性官方描述pod 间亲和性与反亲和性Pod 间亲和性与反亲和性的规则格式为“如果 X 上已经运行了一个或多个满足规则 Y 的 Pod, 则这个 Pod 应该(或者在反亲和性的情况下不应该)运行在 X 上”。 这里的 X 可以是节点、机架、云提供商可用区或地理区域或类似的拓扑域, Y 则是 Kube
·
亲和性(affinity) 如何理解拓扑域(topologyKey)?
官方描述
pod 间亲和性与反亲和性
Pod 间亲和性与反亲和性的规则格式为“如果 X 上已经运行了一个或多个满足规则 Y 的 Pod, 则这个 Pod 应该(或者在反亲和性的情况下不应该)运行在 X 上”。 这里的 X 可以是节点、机架、云提供商可用区或地理区域或类似的拓扑域, Y 则是 Kubernetes 尝试满足的规则。
最终pod调度到哪里的范围就是拓扑域。k8s根据用户的匹配规则获取到一个满足条件的pod所在的拓扑域(可能是某个node,或者是某个region,某个zone),接下来,如果是亲和性,就把当前pod调度到这个拓扑域里面的节点上。如果是反亲和,就把它调度到别的拓扑域上面。
图解如下:
- 根据拓扑域配置(值相同就是同一个区域):topologyKey=zone,所有的节点被划分为两个区域
- 根据用户的配置规则我们找到指定的pod所在的区域是zone=a,pod1在节点node3上面
- 假如我们要部署的pod亲和性为反亲和,那么就把pod2部署到了区域zone=b上
更多推荐
已为社区贡献2条内容
所有评论(0)