쿠버네티스 클러스터에서 수 많은 리소스가 있다면, 구분하기 위한 방법이 필요하다.
즉, 어떤 리소스를 선택해서 명령을 실행하고자 할 때 Label과 Selector를 사용할 수 있다.
쿠버네티스 리소스를 식별하기 위한 key-value 쌍의 메타정보
리소스의 하위 집합을 선택하고, 구성하는데 사용할 수 있다.
key는 고유한 값이어야 한다.
apiVersion: v1
kind: Pod
metadata:
names: my-pod
labels:
app: my-app # key-value
env: prod # key-value
spec:
containers:
- image: my-pod
name: my-pod
Label을 이용해 쿠버네티스 리소스를 필터링하고 원하는 리소스 집합을 구할 수 있다
=
, ==
, !=
3가지 연산자만 허용한다.
kubectl get pods --selector app=my-app,env=prod
Deployment 파일 살펴보기
apiVersion: apps/v1
kind: Deployment
metadata:
name: chan # Deployment의 이름
labels:
app: chan # Deployment를 식별하기 위한 Labels
spec:
replicas: 3
selector:
matchLabels:
app: chan # Label과 일치하는 Pod을 찾기위한 Selector
matchExpressions:
- {key: tier, operator: In, values: [backend, backend2, backend3]} # 'tier' Label에 대해서 backend, backend2, backend3 값을 갖고 있는 Pod을 식별한다.
template:
metadata:
labels:
app: chan # 생성될 Pod에 부여하는 Label
tier: backend
spec:
containers:
- name: chan
image: 이미지 경로
ports:
- name: http
containerPort: 80