DevOps/Kubernetes

[ 쿠버네티스 입문: 90가지 예제로 배우는 컨테이너 관리 자동화 표준 ] Chapter09. 레이블과 애너테이션

noahkim_ 2021. 7. 21. 22:48

9.1 레이블

 

키-값 으로 구성. 메타데이터로 설정 가능.

컨트롤러들이 파드를 관리할 때 자신이 괄니해야 할 파드를 구분하는 역할.

노드에도 설정 가능하므로 자원 할당시에 할당할 노드를 구분하여 사용가능.

 

특정 레이블을 선택 시, 레이블 셀렉터를 사용함.

 

  • 명령어

1. —selector “키=값”
해당 레이블 값을 가진 것들 출력
(—no-headers : 헤더값 미출력)
( wc -l : 행 수 출력 )

2. —show-labels : 파드들의 모든 레이블 출력

3. ' Kubectl label node “노드이름” “:” '
   노드에 레이블 설정

 

9.2 에너테이션

 

키-값 쌍으로 구성하며 레이블처럼 사용자가 설정할 수 있음.

 

에너테이션은 쿠버네티스 시스템이 필요한 정보들을 담았으며, 쿠버네티스 클라이언트나 라이브러리가 자원을 관리하는 데 사용함.

 

 

9.3 레이블을 이용한 카나리 배포

 

배포에 활용되는 방법

 

배포 방법

 

  • 롤링업데이트
    배포된 전체 파드를 한꺼번에 교체하는게 아니라 일정 개수씩 교체하면서 배포함
  • 블루/그린
    기존에 실행된 파드 개수와 같은 개수의 신규 파드를 모두 실행한 후 신규 파드가 정상적으로 실행됐는지 확인함.
    그. 후 트래픽을 한꺼번에 신규 파드 쪽으로 옮김
  • 카나리
    배포 시 기존 버전을 유지한 채로 일부 버전만 신규 파드로 교체함

 

 

레이블의 version값으로 배포 방법을 알림

양쪽 디플로이먼트의 컨테이너의 버전이 다름.

 

서비스를 통해 app:myapp인 레이블의 팟을 선택함

두 버전을 동시에 서비스함.