Kubernetes - Label & Seletetor
Kubernetes 기초
Kubernetes - Label & Seletetor
레이블 Lable
레이블이란?
- 모든 리소스를 구성하는 매우 간단하면서도 강력한 쿠버네티스 기능
- 리소스에 첨부하는 임의의 키/값 쌍 (app: test)
- 레이블 셀렉터를 사용하면 각종 리소스를 필터링하여 선택할 수 있음
- 리소스는 한개 이상의 레이블을 가질수 있음
- 리소스를 만드는 시점에 레이블을 첨부
- 기존 리소스에도 레이블의 값 수정, 추가 가능
- 모든 사람이 쉽게 이해할 수 있는 체계적인 시스템을 구축 가능
레이블을 이용한 포드 구성 ( 가로 app / 세로 rel )
레이블 생성 방법
1
kubectl label pod 파드명 test=pod
신규 레이블 추가
1
kubectl label pod 파드명 test=pod --overwrite
기존 레이블 수정
레이블 필터링하여 검색
1
2
3
4
5
6
7
8
9
kubectl get pod --show-labels #labels 컬럼 생성
kubectl get pod -L app,rel #app, rel key값을 컬럼으로 정렬
# 셀렉터를 통해 라벨을 식별하고 조회한다
kubectl get pod --show-labels -l 'env' # 필터링
kubectl get pod --show-labels -l '!env' # not 필터링
kubectl get pod --show-labels -l 'env!=test' # key/value 비교
kubectl get pod --show-labels -l 'env!=test,rel=beta' # and연산
kubectl get pod --show-labels -l 'env in (test)' # key/value 비교
확장 가능한 쿠버네티스 레이블 예제 - 네이밍
셀렉터 공식 문서 (일치성 기준 요건)
레이블과 셀렉터 연습문제
- YAML 파일을 사용하여 app=nginx 레이블을 가진 포드를 생성하라.
- app=nginx를 가진 포드를 get하라
- get된 포드의 레이블의 app을 확인하라
- app=nginx레이블을 가진 포드에 team=dev1레이블을 추가하라
YAML 파일을 사용하여 app=nginx 레이블을 가진 포드를 생성하라.
1
2
3
4
5
6
7
8
9
10
11
12
13
apiVersion: v1
kind: Pod
metadata:
name: practice-labels
labels:
app: nginx
spec:
containers:
- name: prac-nginx
image: nginx
ports:
- containerPort: 8080
protocol: TCP
app=nginx를 가진 포드를 get하라
1
kubectl get pod --show-labels -l 'app=nginx'
get된 포드의 레이블의 app을 확인하라
1
kubectl get pod -L app
app=nginx레이블을 가진 포드에 team=dev1레이블을 추가하라
1
2
kubectl label pod pod명 team=dev1 (만약 덮어쓰기면 --overwrite)
kubectl get pod -L app,team
This post is licensed under CC BY 4.0 by the author.

