Concept
- key-value 쌍으로 구성하며 사용자가 클러스터 안에 오브젝트를 만들 때 메타데이터로 설정할 수 있다.
- label의 key: 컨트롤러들이 pod를 관리할 때 자신이 관리해야 할 pod를 구분하는 역할.
- kubernetes는 label만으로 관리 대상을 구분하므로 특정 컨트롤러가 만든 pod라도 레이블을 변경하면 인식할 수 없다.
- 컨트롤러와 pod를 느슨하게 결합하는 이런 특징 때문에 쿠버네티스가 파드들을 관리할 때 유연성이 있다.
label의 key, value 설정 규칙
- 63글자를 넘지 않아야 한다
- 시작과 끝 문자는 알파벳 대소문자 및 소문자([a-z0-9A-z]) 여야 한다.
- 중간에는 대시(-), 밑줄(_), 점(.), 숫자 등이 올 수 있다.
label의 selector 설정 방법 - 등호기반, 집합기반
사용자가 특정 labe을 설정한 자원만 선택해서 관리.
등호 기반
같은지(=, ==) 다른지(! =) 를 구분하는 연사자 사용
enviroment=develop
release=stable
- label key 가 enviroment 인 것중 value가 develop인 것들을 선택
- label key 가 release 인 것중 value 가 stable인 것들을 선택
- 두 조건을 모두 만족해서 develop이면서 stable 인 레이블을 선택하려면 enviroment=develop, release=stable 처럼 쉼표로 연결 한다.
집한 기반
여러 개 값을 조건으로 설정한 다음 해당 키가 있는 레이블 값이 조건에 속하는지 아닌지 확인
envrionment in (develop, stage)
release notin (lastes, canary)
gpu
!gpu
- envrionment 가 develop이거나 stage인 레이블을 선택
- release가 lastes와 canary가 아닌 레이블을 선택. 그리고 release 라는 키가 없는 모든 오브 젝트 선택
- gpu 라는 레이블 키가 있는 모든 레이블 선택. 이때 값은 확인하지 않는다
- gpu 라는 키가 없는 모든 레이블을 선택.
- 이 조건을 모두 만족하는 설정(AND 연산)을 하고 싶으면 쉼표(,)로 조건들을 연결한다.
등호기반, 집합기반을 섞어서 사용할 수도 있다.
enviroment=develop, release notin (lastes, canary)
2022.05.01 - [리뷰/도서] - [도서]쿠버네티스 입문
'Cloud-native > Kubernetes' 카테고리의 다른 글
[Kubernetes]What is Annotation in Kubernetes? (0) | 2022.06.06 |
---|---|
[Kubernetes]How to use Label and Selector - Example (0) | 2022.06.05 |
[Kubernetes]What is kube-proxy (userspace, iptables, IPVS) (0) | 2022.06.05 |
[Kubernetes]What is Pause Container(Infra Container) (0) | 2022.06.03 |
[Kubernetes]What are Label and Annotation in Kubernetes (0) | 2022.06.01 |