🏷 Kubernetes 라벨(Label)로 Pod 조회하기 완전 정리
2026. 2. 21. 16:43ㆍk8s
Kubernetes에서 리소스를 조회할 때
라벨(Label)은 가장 강력한 필터 도구다.
Pod, Deployment, Service 등 거의 모든 리소스는 라벨을 기반으로 관리된다.
📌 1️⃣ 특정 라벨 컬럼을 함께 보기
Pod 목록을 조회하면서 app 라벨을 컬럼으로 표시해보자.
kubectl get po -L app
또는
kubectl get po --label-columns=app
출력 예:
NAME READY STATUS RESTARTS AGE APP
pod1 1/1 Running 0 5m v1
pod2 1/1 Running 0 5m v2
👉 APP 컬럼이 추가로 표시된다.
📌 2️⃣ 특정 라벨 값만 조회하기
🔹 app=v2 인 Pod만 조회
kubectl get po -l app=v2
또는
kubectl get po --selector=app=v2
또는 집합 표현식:
kubectl get po -l 'app in (v2)'
📌 3️⃣ 여러 조건을 함께 사용하기
🔹 app=v2 이면서 tier!=frontend
kubectl get po -l app=v2,tier!=frontend
또는
kubectl get po -l 'app in (v2), tier notin (frontend)'
또는
kubectl get po --selector=app=v2,tier!=frontend
🔎 라벨 선택자(selector) 종류 정리
Kubernetes 라벨 필터는 크게 두 가지 방식이 있다.
🔹 1️⃣ Equality-based (동등 비교)
| 표현 | 의미 |
|---|---|
| app=v1 | app가 v1 |
| app!=v1 | app가 v1이 아님 |
| app=v1,tier=backend | AND 조건 |
🔹 2️⃣ Set-based (집합 비교)
| 표현 | 의미 |
|---|---|
| app in (v1,v2) | v1 또는 v2 |
| app notin (v1) | v1 제외 |
| app | key 존재 |
| !app | key 없음 |
예:
kubectl get po -l 'app in (v1,v2)'
📌 실무에서 자주 쓰는 패턴
1️⃣ 특정 서비스 버전만 보기
kubectl get po -l app=v2
2️⃣ 특정 환경 제외하기
kubectl get po -l 'env notin (dev)'
3️⃣ key 존재 여부 확인
kubectl get po -l app
📊 AND 조건과 OR 조건
- 쉼표(,)는 AND 조건
- OR 조건은
in사용
예:
kubectl get po -l 'app in (v1,v2), tier=backend'
의미:
(app=v1 또는 v2) AND (tier=backend)
📌 라벨 컬럼 + 필터 함께 사용
kubectl get po -l app=v2 -L app,tier
→ 조회 + 라벨 컬럼 동시에 확인 가능
🎯 한 줄 정리
-L→ 컬럼에 라벨 표시-l→ 라벨 필터링=→ 동등 비교in/notin→ 집합 비교- 쉼표는 AND 조건
라벨 조회를 제대로 이해하면
Kubernetes 리소스 관리는 훨씬 수월해진다.
'k8s' 카테고리의 다른 글
| 📝 Kubernetes Annotation 완전 정리 (0) | 2026.02.21 |
|---|---|
| 🏷 Kubernetes 라벨(Label)로 조회하고 일괄 수정하기 (0) | 2026.02.21 |
| 🌱 kubectl run에서 --env 옵션으로 환경변수 설정하기 (0) | 2026.02.21 |
| 🔎 kubectl run에서 -it는 로그를 보기 위해 필요한가? (0) | 2026.02.21 |
| 📜 kubectl logs --previous 완전 정리 (컨테이너 재시작 로그 확인 방법) (0) | 2026.02.21 |