Kubernetes:依赖于 Azure 可用性集的亲和力

Kubernetes: Affinity depending on Azure Availability Set

要求

Azure 中的 Kubernetes 使用可用性集作为默认可用性策略。

我可以将 kubernetes nodeSelector 属性指定给 select 特定节点。

kind: Pod
... 
spec:
  ...   
  nodeSelector:
    ???

问题

我可以指定 nodeSelector 规则来使用特定 可用性集 中的节点吗?

我可以在创建后手动标记 pods。但是有自动解决方案吗?

首先,这个问题没有意义,因为对于可用性集,您只能有 1 个带有 AKS 的节点池(并且您的标签提到 AKS)(至少支持)。但是,节点仍然具有如下所示的标签:

agentpool=pool_name

因此您的节点选择器将如下所示:

  nodeSelector:
    agentpool: pool_name

是对的。在我的 pod 关联规则中使用可用性集作为可用性策略没有意义。

但是我通过为亲和性规则使用可用区解决了我的问题:

  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: topology.kubernetes.io/zone
            operator: In
            values:
            - westeurope-1