1. 개요
AKS 클러스터는 기본 Azure 인프라의 논리 섹션에 노드 및 스토리지와 같은 리소스를 배포합니다.
가용성 영역을 사용하면 노드가 다른 가용성 영역에 배포된 다른 노드와 물리적으로 분리 됩니다.

여기서는 기존 시스템 노드풀 가용성 영역으로 확장하면서 새로 배포되는 파드가 Taint 설정이 되어있는 시스템 노드풀에 배포되지 않도록 설정하고 사용자 노드풀에만 생성이 되도록 하기 위함이 목표입니다.
2. Taint
Taint는 노드가 파드 셋을 제외 시킬 수 있다. 노드에 적용하는 일종의 "제한" 표시입니다.
Taint가 설정된 노드에는 해당 Taint를 허용(Tolerate)하는 파드만 스케줄링 될 수 있습니다.
- Taint의 구성요소
> Key : Taint의 키
> Value: Taint의 값
> Effect : Taint의 효과
- Taint Effect 종류
> Noschedule : Toleration이 없는 새로운 파드는 스케줄링 되지 않음, 기존 실행 중인 파드는 계속 실행됨
> PreferNoSchedule : Toleration이 없는 파드의 스케줄링을 피하려고 시도, 다른 노드에 스케줄링할 수 없는 상황이면 노드에도 스케줄링 가능
> NoExecute : Toleration이 없는 새로운 파드는 스케줄링되지 않음, 기존 실행 중인 파드 중 Toleration이 없는 파드는 제거(Evict)됨
3. 테스트
1. 시스템 노드풀의 테인트 설정 확인
kubectl get nodes -o custom-columns=NAME:.metadata.name,TAINTS:.spec.taints

2. System nodepool에 Taint 구성
az aks nodepool update \
--resource-group terzmy-rg \
--cluster-name terzmy-aks \
--name agentpool \
--node-taints CriticalAddonsOnly=true:NoSchedule


3.새로운 파드 배포 테스트
새로운 Pod 배포 시 사용자 노드풀에 배포 되는 것을 확인합니다.

4. 시스템 노드풀 가용성 영역 구성
기존 시스템 노드풀의 가용성 영역을 업데이트 할 수는 없습니다. 그러므로 아래 내용과 같은 순서로 진행해야합니다.
- 시스템 노드풀 가용성 영역 구성하여 신규 배포 진행
> 최소 3개 노드를 배포해야 가용성영역에 배포된 것을 확인할 수 있습니다.


- 신규 배포된 시스템 노드풀에 Taint 설정 진행
az aks nodepool update \
--resource-group terzmy-rg \
--cluster-name terzmy-aks \
--name newagentpool \
--node-taints CriticalAddonsOnly=true:NoSchedule

! userpool에만 파드가 배포되는지 확인해 봤습니다.

- 기존 시스템 노드풀 삭제


'Azure' 카테고리의 다른 글
| Azure Application Gateway WAF (0) | 2025.02.10 |
|---|---|
| Content-type & Azure CDN 규칙 엔진 (1) | 2025.02.04 |
| WebSocket 통신과 Azure Front Door (0) | 2025.01.15 |
| Azure CDN을 이용한 정적 웹 애플리케이션 서비스 (1) | 2024.11.28 |
| Azure Kubernetes Service & Grafana Tempo (0) | 2024.11.01 |