EKS Node selector - possible labels

1

A customer using EKS on AWS would like to isolate worker nodes on different racks. I can define labels manually as per: https://www.eksworkshop.com/beginner/140_assigning_pods/node_selector/ but I was wondering if automatic labels are perhaps available when K8s detects AWS rack-level placement groups.

My question ultimately is: are labels always user-defined or are there automated labels ? Is there any other strategy to create anti-affinity rules (e.g per-AZ nodes) ?

전문가
질문됨 2년 전4533회 조회
1개 답변
3
수락된 답변

EKS is automatically adding labels to your nodes as you can see below. This information can be used for your node selectors and anti-affinity rules. That said, Placement Groups aren't automatically included as label on the node. You should define custom labels for identifying the nodes in you placement group and expose the topology for the node selectors. There is a blog post which shows you how to do this as well.

kubectl describe node ip-***-***-***-***.eu-west-1.compute.internal
Name:               ip-***-***-***-***.eu-west-1.compute.internal
Roles:              <none>
Labels:             alpha.eksctl.io/cluster-name=eksworkshop-eksctl
                    alpha.eksctl.io/nodegroup-name=nodegroup
                    beta.kubernetes.io/arch=amd64
                    beta.kubernetes.io/instance-type=t3.small
                    beta.kubernetes.io/os=linux
                    eks.amazonaws.com/capacityType=ON_DEMAND
                    eks.amazonaws.com/nodegroup=nodegroup
                    eks.amazonaws.com/nodegroup-image=ami-05fbcac3cb8054b00
                    eks.amazonaws.com/sourceLaunchTemplateId=lt-08bc0e2abce65746a
                    eks.amazonaws.com/sourceLaunchTemplateVersion=1
                    failure-domain.beta.kubernetes.io/region=eu-west-1
                    failure-domain.beta.kubernetes.io/zone=eu-west-1b
                    kubernetes.io/arch=amd64
                    kubernetes.io/hostname=ip-***-***-***-***.eu-west-1.compute.internal
                    kubernetes.io/os=linux
                    node.kubernetes.io/instance-type=t3.small
                    topology.kubernetes.io/region=eu-west-1
                    topology.kubernetes.io/zone=eu-west-1b
profile pictureAWS
Vincent
답변함 2년 전
profile pictureAWS
전문가
Toni_S
검토됨 2년 전
  • Thanks Vincent, exactly the information I needed, plus I hadn't spotted this blog post!

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인

관련 콘텐츠