NodeSelector
- Node에 설정된 Label을 기반으로 Pod 배치
#label 추가
kubectl label node {노드명} {key}={value}
#label 삭제
kubectl label node {노드명} {key}-
Node Affinity
- 노드 셀렉터와 비슷하게 노드의 레이블을 기반으로 Pod 배치
- 노드 셀렉터는 = 조건만 가능하지만 어피니티는 &&, || 조건도 가능하다 (이 때문에 노드 셀렉터에서 어피니티로 넘어가는 경우가 많다고 한다.)
- 필드 :
requiredDuringSchedulingIgnoredDuringExecution : '스케쥴링하는 동안 꼭 필요한' 조건
preferredDuringSchedulingIgnoredDuringExecution : '스케쥴링하는 동안 만족하면 좋은' 조건
Taint
- 노드에 설정한다.
- 특정 파드가 배포될 때, taint 설정이 되어 있으면 해당 노드에 배포가 되지 않는다.
- master노드는 taint가 항상 걸려있음
Toleration
pod에 설정, taint가 걸려있는 마스터노드에 배포하고 싶을 때 사용
마스터 노드에도 배포된다. 마스터 노드에는 부하를 주지 않기위해 배포를 하지 않는게 일반적이지만 비교적 다른 노드에 비해 다운이 되지 않는 편이라 의도적으로 배포할 수도 있음
Cordon
- 노드에 더이상 배포가 되지 않도록 하는 것
- 스케쥴링에서 제외함
Drain
- 노드 안에 있는 pod를 다른 노드로 옶긴다
- drain하면 자동으로 cordon도 실행됨
- drain할 때 에러가 나는 경우가 있는데 이때는 대부분 데몬셋 때문에 에러가 발생하는 것
- 데몬셋으로 배포하면 모든 노드에 하나씩 배포된다 이를 방지하기 위해서는 ignore 옵션을 추가해 drain 한다.
롤링(rolling) 업데이트
- Pod를 순차적으로 업그레이드 한다.
- 새 Replica Set을 만들고 이전 Replica Set의 Replica를 감소 시키면서 새 Replica의 수를 증가 시키는 방식
- 업데이트가 진행되는 동안, 구 버전과 신 버전이 함께 존재한다
Blue/Green 업데이트
- 레드 블랙 업데이트라고 하기도 함
- 구 버전과 동일한 환경으로 신 버전을 전부 구축한 후 로드 밸런서를 수정하여 신 버전으로 한 번에 업데이트 하는 방식
- 신속한 롤백이 가능
- 업데이트를 준비하고 진행하는 과정 동안에 시스템 자원이 두 배로 필요하다
카나리(Canary) 업데이트
- 일부 사용자에게만 신 버전을 테스트 한 후, 그 다음에 모든 사용자에게 업데이트를 진행하고자 할 때 사용
- 구 버전의 트래픽 일부를 신 버전으로 유입하여 테스트 하고 이상이 없을 시 전환하는 방식
- 일부 사용자에게만 새로운 기능이나 달라진 UI가 표출되고 사용자가 새로고침하면 기존 버전에 다시 로드 밸런싱 될 수 있어 UI/UX에 대한 사용자 반응성 테스트를 진행하기 힘들다
만약, 카나리 업데이트로 UI/UX에 대한 사용자 반응성 테스트를 하고자 한다면 사용자와 서버를 1:1 매칭 시키는 스티키 세션을 사용해야 한다.
롤링 업데이트와 카나리 업데이트의 차이
언듯 보기엔 둘다 같은 방식으로 느껴지겠지만 차이점이 있다.
롤링 업데이트의 경우 블루그린 업데이트 보다 자원을 적게 사용하면서 빠르게 업데이트를 할 수 있도록 최소한의 오버헤드를 통해 업데이트를 진행한다. 즉, 문제가 있는 신 버전일 경우 사용자에게 빠르게 노출된다는 문제점이 있다.
하지만 카나리 업데이트의 경우, 일부 유저의 트래픽을 신 버전에 테스트 하면서 문제가 있는 신 버전일 경우 비교적 적은 사용자에게 노출된 상태로 파악할 수 있다는 차이점이 있다.
참고 :
'Docker & Kubenetes' 카테고리의 다른 글
EKS - EFS CSI driver (0) | 2023.11.03 |
---|---|
Helm Operator (Helm Controller)에 대하여 (0) | 2023.10.13 |
쿠버네티스 Pod 배포 ( Taint & Toleration & Cordon & Drain ) (0) | 2023.09.11 |
쿠버네티스 파드 네트워킹 (0) | 2023.09.06 |
쿠버네티스 볼륨 PV 와 PVC (0) | 2023.09.04 |