Label은 항목에 붙인 속성과 같고, Selector로는 그 항목을 필터링할 수 있다. 이 글에서는 Label이 설정된 자원을 Selector로 필터링하는 방법을 정리한다.
selector로 필터링한 포드 목록 확인
get pods 명령에 --selector 옵션을 주어 필터링한다.
kubectl get pods --selector KEY=VALUE
kubectl get pods --selector=KEY=VALUE
# 예시
kubectl get pods --selector env=dev
kubectl get pods --selector=env=dev
selector로 필터링한 replicaset 목록 확인
get replicaset 명령에 --selector 옵션을 주어 필터링한다.
kubectl get replicaset --selector KEY=VALUE
kubectl get replicaset --selector=KEY=VALUE
# 예시
kubectl get replicaset --selector env=prod
kubectl get replicaset --selector=env=prod
selector로 필터링한 모든 자원 확인
get all 명령에 --selector 옵션을 주어 필터링한다. 정말 모든 자원이 표시되지는 않는다.
kubectl get all --selector KEY=VALUE
kubectl get all --selector=KEY=VALUE
# 예시
kubectl get all --selector env=prod
kubectl get all --selector=env=prod
2개 이상의 selector로 필터링한 포드 목록 확인
--selector 옵션을 여러 번 지정하면 여러 개의 Label로 자원을 필터링할 수 있다.
kubectl get pod [--selector KEY1=VALUE1 --selector KEY2=VALUE2 | ...]
# 예시
kubectl get pod --selector env=prod --selector bu=finance --selector tier=frontend
+ Label/Selector 다른 역할
Label과 Selector를 이용하면 다른 개체를 연결할 수 있다.
Pod와 Replicaset이 연결되도록 Replicaset의 Selector와 Pod Label이 동일하도록 구성하면 된다. 모든 Label이 동일할 필요는 없고, 하나의 Label만 같으면 된다.
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: replicaset-1
spec:
replicas: 2
selector: # Replicatset Selector : 포드 그룹화
matchLabels:
tier: frontend
template:
metadata:
labels: # Pod Label
tier: frontend
spec:
containers:
- name: nginx
image: nginx