728x90
반응형
# 레이블과 셀렉터
- 레이블이란 : 모든 리소스를 구성하는 매우 간단하면서도 강력한 쿠버네티스 기능, 마치 바코드 같은 역할을 함
- 쿠버네티스 인 액션 이라는 책에 잘 설명되어 있음
- 레이블로 유연한 테스트 환경 제공
- 키:밸류 기반의 형식으로 되어 있음
# 레이블 실습
# 모든 서비스 삭제
kubectl delete all --all
# 레이블 추가
gedit http-go-pod-v2.yaml
쿠버네티스 사이트 문서검색 > pod overview > kind 검색
apiVersion: v1
kind: Pod
metadata:
name: http-go
labels:
creation_method: manual
env: prod
spec:
containers:
- name: http-go
image: gasbugs/http-go
ports:
- containerPort: 8080
protocol: TCP
# 실행하기
kubectl create -f http-go-pod-v2.yaml
kubectl get pod
# 레이블이 정상적으로 생성되었는지 확인
kubectl get pod --show-labels
# 파일복사
cp http-go-pod-v2.yaml http-go-pod-v3.yaml
gedit http-go-pod-v3.yaml
apiVersion: v1
kind: Pod
metadata:
name: http-go-v3
labels:
creation_method: manual-v3
spec:
containers:
- name: http-go
image: gasbugs/http-go
ports:
- containerPort: 8080
protocol: TCP
cp http-go-pod-v2.yaml http-go-pod-v3.yaml
kubectl get pod --show-labels
# 원하는 라벨의 내용만 추출하여 보기
kubectl get pod -L env
kubectl get pod -L creation_method
# 레이블 추가
kubectl label pod http-go test=foo
kubectl get pod --show-labels
# 레이블 변경
kubectl label pod http-go test=foo1 --overwrite
kubectl get pod --show-labels
# 레이블 삭제
kubectl label pod http-go test-
kubectl get pod --show-labels
# 레이블 필터링
kubectl get pod
kubectl get pod --show-labels
- env가 있는놈만 출력
kubectl get pod -l env
- env가 없는놈만 출력
kubectl get pod -l '!env'
- env가 test 있는놈만 출력
kubectl get pod -l 'env=test'
kubectl get pod -l 'env=prod'
kubectl get pod -l 'env=prod,creation_method=manual'
728x90
반응형
'⭐ Kubernetes & EKS > 레이블 & 셀렉터 (Lable & Selector)' 카테고리의 다른 글
레이블과 셀렉터 실습 (service의 셀렉터와 deployment의 셀렉터 매칭) (0) | 2022.11.10 |
---|---|
쿠버네티스 - 레이블과 셀렉터 연습문제 (0) | 2021.09.07 |