首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Kubernetes pod Affinity不起作用?

为什么Kubernetes pod Affinity不起作用?
EN

Stack Overflow用户
提问于 2020-05-12 19:01:52
回答 1查看 451关注 0票数 0

我有以下的pod

代码语言:javascript
复制
NAME                                       READY   STATUS             NODE                          LABELS
bss-a-0                                    5/5     Running            aks-bss-0   tcb.segment=bss,tcb.zone=centralus-1
four-6mxdk                                 0/1     Pending            <none>      job-name=four
rat-a-0                                    7/7     Running            aks-rat-1   tcb.segment=rat,tcb.zone=centralus-1
rat-b-0                                    7/7     Running            aks-rat-2   tcb.segment=rat,tcb.zone=centralus-2
seagull-0                                  1/1     Running            aks-bss-0   tcb.segment=rat

four-6mxdk是pod,包含以下pod亲和性部分:

代码语言:javascript
复制
  affinity:
    podAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
      - labelSelector:
          matchExpressions:
          - key: tcb.segment
            operator: In
            values:
            - rat
          - key: tcb.zone
            operator: In
            values:
            - centralus-1
        namespaces:
        - default
        topologyKey: k8s.io/hostname

节点详细信息:

代码语言:javascript
复制
apiVersion: v1
kind: Node
metadata:
  annotations:
    node.alpha.kubernetes.io/ttl: "0"
    volumes.kubernetes.io/controller-managed-attach-detach: "true"
  labels:
    agentpool: rat
    beta.kubernetes.io/arch: amd64
    beta.kubernetes.io/instance-type: Standard_D32s_v3
    beta.kubernetes.io/os: linux
    failure-domain.beta.kubernetes.io/region: centralus
    failure-domain.beta.kubernetes.io/zone: centralus-1
    kubernetes.azure.com/cluster: cluster
    kubernetes.azure.com/role: agent
    kubernetes.io/arch: amd64
    kubernetes.io/hostname: aks-rat-1
    kubernetes.io/os: linux
    kubernetes.io/role: agent
    node-role.kubernetes.io/agent: ""
    storageprofile: managed
    storagetier: Premium_LRS
  name: aks-rat-1
  allocatable:
    attachable-volumes-azure-disk: "32"
    cpu: 31580m
    ephemeral-storage: "93492541286"
    hugepages-1Gi: "0"
    hugepages-2Mi: "0"
    memory: 121466760Ki
    pods: "30"
  nodeInfo:
    architecture: amd64
    containerRuntimeVersion: docker://3.0.8
    kernelVersion: 4.15.0-1069-azure
    kubeProxyVersion: v1.15.7
    kubeletVersion: v1.15.7
    operatingSystem: linux
    osImage: Ubuntu 16.04.6 LTS

我的预期是: pod将被安排在node: aks-rat-1上,因为它是唯一一个两个标签都匹配的节点。

实际结果:3个节点不匹配pod亲和性/反亲和性。

是bug吗?还是我做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2020-05-12 20:20:57

看起来aks使用kubernetes.io/hostname而不是k8s.io/hostname,或者由于某些版本的K8,它被更改了,并且大多数文档都没有更新。无论如何,topologyKey在这里是一个问题。

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

https://stackoverflow.com/questions/61750075

复制
相关文章

相似问题

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