레이블, 애너테이션 이란?
레이블과 애너테이션은 쿠버네티스에서 자원들의 메타데이터를 관리하는 데 사용한다.
레이블은 셀렉터와 함께 특정 레이블이 있는 자원들을 선택할 때 주로 사용한다.
애너테이션은 주석 성격의 메타데이터를 기록하는 데 사용한다.
레이블은 쿠버네티스 클러스터 안에서 사용자가 오브젝트를 생성할 때 해당 오브젝트를 구분하는 용도이다. 사용자가 임의로 원하는 값을 지정해서 사용한다.
애너테이션은 레이블처럼 사용자가 원하는 값을 설정하기보다 쿠버네티스 시스템에서 필요한 정보들을 표시하는 데 사용한다.
레이블
- 키-값 쌍으로 구성
- 사용자가 클러스터 안에서 오브젝트를 만들 때 메타데이터로 설정할 수 있다.
- 레이블이 생성된 다음에도 언제든지 수정할 수 있다.
- 레이블의 키는 쿠버네티스 안에서 컨트롤러들이 파드를 관리할 때 자신이 관리해야 할 파드를 구분하는 역할
- 쿠버네티스는 레이블만으로 관리 대상을 구분하므로 특정 컨트롤러가 만든 파드라도 레이블을 변경하면 인식할 수 없다.
- 컨트롤러와 파드를 느슨하게 결합하는 특징 때문에 쿠버네티스가 파드들을 관리할 때 유연성이 있다.
- 노드에도 레이블을 설정할 수 있으므로 클러스터 안 노드들을 레이블로 구분한 다음 특정 레이블이 있는 노드에만 자원을 할당해 실행하는 것도 가능
- 레이블 규칙
- 63 글자를 넘지 않아야함
- 시작과 끝 문자는 알파벳 대소문자 및 숫자여야함
- 중간에는 대시(-), 밑줄(_), 점(.), 숫자 등이 올 수 있음
- 특정 레이블을 선택할 때는 레이블 셀렉터를 사용한다.
- 등호기반, 집합기반
- 등호기반 셀렉터
- 같은지(==) 다른지(!=)를 구분하는 연산자를 사용할 수 있다.
- 집합기반 셀렉터
- 여러 개 값을 조건으로 설정한 다음 해당 키가 있는 레이블값이 조건에 속하는지(in), 아닌지(not in)를 확인한다.
애너테이션
- 레이블과 마찬가지로 키-값 쌍으로 구성
- 레이블처럼 사용자가 설정할 수 있다.
- 쿠버네티스 시스템이 필요한 정보들을 담았으며, 쿠버네티스 클라이언트나 라이브러리가 자원을 관리하는 데 활용한다.
- 그래서 애너테이션의 키는 쿠버네티스 시스템이 인식할 수 있는 값을 사용한다.
- 인그레스에서 필요한 설정을 애너테이션으로 정의할 수 있다.
- ingress-nginx같은 인그레스 컨트롤러는 애너테이션으로 사용자가 직접 nginx에 필요한 설정들을 정의할 수 있다.
- 그 외 사용자에게 필요한 정보들을 메모하는 용도로도 사용할 수 있다.
- 릴리즈 정보, 로깅, 모니터링에 필요한 정보들, 하다못해 오브젝트의 담당자 정보나 비상 연락처를 적어둘 수도 있다.
레이블을 이용한 카나리 배포
- 배포 방법에는 롤링업데이트, 블루/그린, 카나리등 여러 가지 방법이 있다.
- 롤링업데이트
- 배포된 전체 파드를 한꺼번에 교체하는 것이 아니라 일정 개수씩 교체하면서 배포한다.
- 디플로이먼트의 기본 배포 방법
- 블루/그린
- 기존에 실행된 파드 개수와 같은 개수의 신규 파드를 모두 실행한 후 신규 파드가 정상적으로 실행됐는지 확인한다.
- 그 후 트래픽을 한꺼번에 신규 파드 쪽으로 옮긴다.
- 이것 역시 디플로이먼트를 이용할 수 있다.
- 카나리
- 옛날 광부들이 광산에 유독가스가 있는지 확인하려고 가스에 민감한 카나리아와 함께 광산에 들어간 사실에서 아이디어를 얻은 배포 방법
- 신규 파드를 배포할 때 한꺼번에 앱 컨테이너 전체를 교체하지 않는다.
- 기존 버전을 유지한 채로 일부 버전만 신규 파드로 교체한다.
- 버그나 이상은 없는지, 사용자 반응은 어떤지 확인할 때 유용하다.
- 쿠버네티스의 기본 디플로이먼트는 디플로이먼트에 속한 파드들을 하나씩이든 한꺼번이든 모두 교체하는 방식이므로 카나리 방법으로 배포하기에는 어려움이 있을 수 있다.
- 하지만 레이블을 이용하면 쿠버네티스에서도 카나리 방법으로 배포할 수 있다.
'클라우드 > Kubernetes(쿠버네티스)' 카테고리의 다른 글
[쿠버네티스] 시크릿 (0) | 2021.06.11 |
---|---|
[쿠버네티스] 컨피그맵 (0) | 2021.06.09 |
[쿠버네티스] 인그레스 (0) | 2021.06.08 |
[쿠버네티스] 서비스 (0) | 2021.06.07 |
[쿠버네티스] 컨트롤러(데몬세트, 스테이트풀세트, 잡, 크론잡) (0) | 2021.06.06 |