🏷 Kubernetes 라벨(Label)로 조회하고 일괄 수정하기
2026. 2. 21. 16:48ㆍk8s
Kubernetes에서 라벨(Label)은 단순한 메타데이터가 아니다.
라벨은:
- 리소스 조회 필터
- Service 연결 기준
- 정책 적용 대상 구분
- 운영 단위 그룹핑 기준
으로 사용되는 핵심 요소다.
이번 글에서는 라벨 조회와 일괄 수정 방법을 정리한다.
📌 1️⃣ 라벨 컬럼 함께 조회하기
특정 라벨을 컬럼으로 표시하려면:
kubectl get po -L app
또는
kubectl get po --label-columns=app
출력 예:
NAME READY STATUS AGE APP
pod1 1/1 Running 5m v1
pod2 1/1 Running 5m v2
📌 2️⃣ 특정 라벨 값만 조회하기
app=v2 인 Pod만 조회
kubectl get po -l app=v2
또는
kubectl get po --selector=app=v2
📌 3️⃣ 집합 조건으로 조회하기
app=v1 또는 v2
kubectl get po -l "app in (v1,v2)"
app=v2 이면서 tier!=frontend
kubectl get po -l app=v2,tier!=frontend
쉼표는 AND 조건이다.
📌 4️⃣ 조건에 맞는 Pod에 라벨 추가하기
예시:
app=v1 또는 app=v2 인 모든 Pod에 tier=web 라벨 추가
kubectl label po -l "app in (v1,v2)" tier=web
📌 5️⃣ 기존 라벨 덮어쓰기
이미 해당 키가 존재하면 에러가 발생한다.
이 경우:
kubectl label po -l "app in (v1,v2)" tier=web --overwrite
📌 6️⃣ 라벨 삭제하기
라벨 제거는 -를 붙인다.
kubectl label po -l app=v1 tier-
📊 자주 사용하는 표현 정리
| 기능 | 명령 |
|---|---|
| 라벨 컬럼 보기 | kubectl get po -L app |
| 단일 값 조회 | kubectl get po -l app=v1 |
| 집합 조회 | kubectl get po -l "app in (v1,v2)" |
| AND 조건 | -l key1=val1,key2=val2 |
| 라벨 추가 | kubectl label po name key=value |
| 조건부 일괄 추가 | kubectl label po -l selector key=value |
| 라벨 삭제 | kubectl label po name key- |
🔎 라벨 선택자 종류
Equality-based
app=v1app!=v1
Set-based
app in (v1,v2)app notin (v1)app(key 존재)!app(key 없음)
🎯 운영에서 중요한 이유
라벨은 단순 조회 용도가 아니다.
- Service는 라벨로 트래픽을 연결한다.
- NetworkPolicy는 라벨 기준으로 허용/차단한다.
- HPA는 라벨 기반으로 대상 리소스를 찾는다.
즉, 라벨 변경은 트래픽 흐름과 정책에 직접적인 영향을 줄 수 있다.
🏁 정리
라벨은 Kubernetes 리소스를
- 조회하고
- 그룹화하고
- 일괄 수정하고
- 정책을 연결하는
핵심 관리 도구다.
라벨 선택자 문법을 이해하면
대규모 클러스터 운영이 훨씬 수월해진다.
'k8s' 카테고리의 다른 글
| 🚫 Kubernetes Taint & Toleration 완전 정리 (0) | 2026.02.21 |
|---|---|
| 📝 Kubernetes Annotation 완전 정리 (0) | 2026.02.21 |
| 🏷 Kubernetes 라벨(Label)로 Pod 조회하기 완전 정리 (0) | 2026.02.21 |
| 🌱 kubectl run에서 --env 옵션으로 환경변수 설정하기 (0) | 2026.02.21 |
| 🔎 kubectl run에서 -it는 로그를 보기 위해 필요한가? (0) | 2026.02.21 |