首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >节点[亲和力/反亲和力]和Pod [亲和力/反亲和力]

节点[亲和力/反亲和力]和Pod [亲和力/反亲和力]
EN

Stack Overflow用户
提问于 2021-12-03 14:32:33
回答 2查看 73关注 0票数 1

我有一个pod,它同时具有节点亲和性和pod亲和性。可以帮助我理解在这种情况下事情是如何表现的吗?

节点1:

代码语言:javascript
复制
   label: 
        schedule-on : gpu

节点2:

代码语言:javascript
复制
   label: 
        schedule-on : gpu

节点3:

代码语言:javascript
复制
   label: 
        schedule-on : non-gpu

清单

代码语言:javascript
复制
apiVersion: apps/v1
kind: Deployment
metadata:
  name: test
spec:
  progressDeadlineSeconds: 600
  replicas: 2
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app.kubernetes.io/name: test
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      labels:  
        app.kubernetes.io/name: test
    spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: schedule-on
                operator: In
                values:
                - gpu
        podAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
          - labelSelector:
              matchExpressions:
              - key: app.kubernetes.io/name
                operator: In
                values:
                - test
            topologyKey: schedule-on

上面的输出是:在不同的节点node1上调度Pods,node2

理想输出: Pod需要调度在同一节点node1上

这是我的发现。

发现1:我认为节点亲和性优先,而pod亲和性被忽略

EN

回答 2

Stack Overflow用户

发布于 2021-12-03 14:46:08

它是节点亲和性和pod亲和性的结合。因为两个pod具有相同的拓扑密钥域。因此,使它们处于相同的托管位置,可以在不同的节点中调度pod,但在相同的托管位置中。

匹配拓扑密钥并放置pod时。键的值也会被考虑。

票数 1
EN

Stack Overflow用户

发布于 2021-12-21 13:27:57

我想在你的回答中添加一些定义。

首先,来自this article

节点亲和性是一组规则。调度程序使用它来决定pod可以放置在群集中的哪个位置。使用节点上的标签和pods定义中指定的标签选择器来定义规则。节点亲和性允许pod指定对其可以调度到的一组节点的亲和性。

来自here

如果新pod上的标签选择器与当前pod上的标签匹配,则

Pod affinity可以告诉调度程序在与其他pod相同的节点上定位新pod。

在您的场景中:正如您所写的,两个pod具有相同的拓扑密钥域。这一事实使它们处于相同的托管位置,因此pods可以在不同的节点但在相同的托管位置中进行调度。

Here也是一些关于topologyKey的词

TopologyKey是节点标签的关键字。如果两个节点使用此键进行了标记,并且具有相同的标签值,则调度程序会将这两个节点视为处于同一拓扑中。调度器尝试在每个拓扑域中放置均衡数量的Pod。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70215961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档