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
要求
Azure 中的 Kubernetes 使用可用性集作为默认可用性策略。
我可以将 kubernetes nodeSelector
属性指定给 select 特定节点。
kind: Pod
...
spec:
...
nodeSelector:
???
问题
我可以指定 nodeSelector
规则来使用特定 可用性集 中的节点吗?
我可以在创建后手动标记 pods。但是有自动解决方案吗?
首先,这个问题没有意义,因为对于可用性集,您只能有 1 个带有 AKS 的节点池(并且您的标签提到 AKS)(至少支持)。但是,节点仍然具有如下所示的标签:
agentpool=pool_name
因此您的节点选择器将如下所示:
nodeSelector:
agentpool: pool_name
但是我通过为亲和性规则使用可用区解决了我的问题:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: topology.kubernetes.io/zone
operator: In
values:
- westeurope-1