개요
- k8s Node Labels, k8s Well-Known Node Labels
- k8s 노드 레이블, k8s 잘 알려진 노드 레이블
- 쿠버네티스 노드에 붙는 레이블은 스케줄링, 토폴로지, 워크로드 제어에 사용된다.
- 일부는 kubelet이 자동으로 붙이며(빌트인), 일부는 클라우드/운영자/추가 컴포넌트가 설정한다.
빌트인
| 레이블 키 | 예시 값 | 설명 |
|---|---|---|
| kubernetes.io/os | linux, windows | 노드 OS. Pod에도 지정 가능 |
| kubernetes.io/arch | amd64, arm64 | 노드 아키텍처 |
| kubernetes.io/hostname | master, worker1 | 노드 호스트명. kubelet이 자동 지정 |
| beta.kubernetes.io/os | linux | (Deprecated) kubernetes.io/os 로 대체 |
| beta.kubernetes.io/arch | amd64 | (Deprecated) kubernetes.io/arch 로 대체 |
기타
| 레이블 키 | 예시 값 | 설명 |
|---|---|---|
| node.kubernetes.io/exclude-from-external-load-balancers | "" | 외부 로드밸런서 대상에서 제외 |
| node.kubernetes.io/instance-type | m3.medium | 클라우드 인스턴스 타입 |
| feature.node.kubernetes.io/* (예: feature.node.kubernetes.io/network-sriov.capable) |
"true" | Node Feature Discovery(NFD)가 채우는 기능 레이블 |
| nfd.node.kubernetes.io/node-name | node-1 | NodeFeature 대상 노드 지정 |
| node-role.kubernetes.io/control-plane | "" | 컨트롤 플레인 노드 표시. kubeadm 등 관리 도구가 자동 설정 |
| node-role.kubernetes.io/* (예: node-role.kubernetes.io/gpu) |
"gpu" | 노드 역할(Role) 지정 시 사용. 접미사는 자유롭게 설정 가능 |
| topology.kubernetes.io/region | us-east-1 | 노드/스토리지 리전. PersistentVolume에도 사용 |
| topology.kubernetes.io/zone | us-east-1c | 노드/스토리지 가용 영역. PersistentVolume에도 사용 |
| beta.kubernetes.io/instance-type | m3.medium | (Deprecated) node.kubernetes.io/instance-type 로 대체 |
| failure-domain.beta.kubernetes.io/region | us-east-1 | (Deprecated) topology.kubernetes.io/region 로 대체 |
| failure-domain.beta.kubernetes.io/zone | us-east-1c | (Deprecated) topology.kubernetes.io/zone 로 대체 |
예시
$ kubectl get nodes --show-labels
NAME STATUS ROLES AGE VERSION LABELS
master Ready control-plane 10d v1.30.2 kubernetes.io/hostname=master, ...
worker1 Ready <none> 10d v1.30.2 kubernetes.io/hostname=worker1, ...