728x90
Label이란
- 레이블은 부가적인 정보를 컨테이너에 붙이는 것이며, 레이블을 통해서 오브젝트를 검색/식별할 수 있다. 레이블을 추가한다고 해서 쿠버네티스 클러스터에 직접적으로 영향을 주는 것은 아니지만, 사용자가 쉽게 식별할 수 있다.
- 컨테이너의 역할에 대해 설명을 레이블로 저장해 놓을 수 있다.
- 레이블은 key: value 쌍으로 되어 있다.
- 레이블 형태는 접두어/이름 형식으로 사용가능하다. 단, kubernetes.io/ 와 k8s.io 접두어는 쿠버네티스 환경에서 이미 예약되었으므로 사용할 수 없다.
Label은 manifest file 작성시에 metadata 하위에 작성할 수 있다.
pod들의 Label을 확인하는 명령어
$ kubectl get pods --show-labels
[예시]
vagrant@kube-control1:~/work/20230209$ kubectl get pods --show-labels
NAME READY STATUS RESTARTS AGE LABELS
myapp-pod 1/1 Running 0 174m <none>
myapp-pod-label 1/1 Running 0 38s env=dev,tier=frontend
label key를 지정할 경우 해당하는 label key를 별도의 field로 볼 수 있다.
$ kubectl get pods -L LABEL_KEY
새로운 label을 pod에 추가하는 방법
$ kubectl label pod POD LABEL_KEY=VALUE
[예시]
vagrant@kube-control1:~/work/20230209$ kubectl label pod myapp-pod env=dev
pod/myapp-pod labeled
이미 있는 label의 value를 변경하는 방법
$kubectl label pods POD_NAME LABEL_KEY=LABEL_VALUE --overwrite
[예시]
vagrant@kube-control1:~/work/20230209$ kubectl label pods myapp-pod-label env=debug
error: 'env' already has a value (dev), and --overwrite is false
vagrant@kube-control1:~/work/20230209$ kubectl label pods myapp-pod-label env=debug --overwrite
pod/myapp-pod-label labeled
Label Selector
Label을 통한 검색 방법은 두가지가 있다.
1. Label의 key, value를 이용하여 일치성을 기준으로 검색
조건은 다음의 기호를 사용하여 건다 : =, ==, !=
[예시]
label중에 tier가 없는 pod 검색하기
$ kubectl get pods --show-labels -l '!tier’
env라는 key를 가지지만 value가 dev가 아닌 pod 검색하기
$ kubectl get pods --show-labels -l 'env!=dev’
2. Label의 key, valuie를 이용하여 집합성을 기준으로 검색
env 라는 label의 key 값이 (debug,dev) 집합에 속하는 pod 검색
$ kubectl get pods --show-labels -l 'env in (debug,dev)’
728x90
'Cloud Engineering > Kubernetes ⚙️' 카테고리의 다른 글
[Kubernetes] Annotation 추가하기 (0) | 2023.02.09 |
---|---|
[Kubernetes] Pod 생성 및 삭제하기 (0) | 2023.02.09 |
[Kubernetes] YAML 문법과 Manifest 파일 형식 (0) | 2023.02.09 |
[Kubernetes] 쿠버네티스의 API 종류와 API 확인 명령어 (0) | 2023.02.09 |
모놀리식 아키텍처 vs 마이크로서비스 아키텍처 (0) | 2023.02.07 |