본문 바로가기

Cloud-native/Kubernetes

[Kubernetes]How to use Label and Selector - Concept

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 - [리뷰/도서] - [도서]쿠버네티스 입문