한눈에 보기
클러스터는 만든 날보다 운영하는 날이 훨씬 길다. 마지막 회는 오래 운영할 때 반복해서 부딪히는 네 가지를 다룬다. 무엇을 얼마나 관측할지(그리고 그 로그 비용), 업그레이드를 어떻게 무중단으로 할지, 돈이 어디로 새는지, 사고가 났을 때 무엇으로 되돌릴지다.
모니터링: 지표는 Prometheus, 로그는 비용부터
AKS 모니터링은 두 갈래다(Microsoft Learn).
- Azure Monitor managed Prometheus: 노드·pod·컨테이너 지표를 수집한다. --enable-azure-monitor-metrics로 켜고, 컨트롤 플레인 지표(API server, etcd 등)는 --enable-control-plane-metrics를 더한다.
- Container Insights: 컨테이너 로그와 Kubernetes 이벤트를 Log Analytics로 보낸다.
로그는 비용이 빠르게 불어나는 곳이다. Container Insights는 수집 범위를 프리셋으로 고를 수 있다.
- 프리셋 · 수집 주기 · 수집 대상
- Logs and Events(기본) · 1분 · 컨테이너 로그, Kubernetes 이벤트, pod 목록
- Standard · 1분 · 표준 테이블 전체
- Syslog · 1분 · 표준 테이블 전체 + 노드 Syslog
- Cost-optimized · 5분 · kube-system 등 시스템 네임스페이스 제외
수집 주기는 1~30분 사이에서 조정할 수 있고 네임스페이스별로 거를 수 있다. 개발 클러스터는 Cost-optimized로 시작하고, 꼭 필요한 네임스페이스만 자세히 보는 것이 비용을 아끼는 첫걸음이다. 대시보드는 Azure 포털 안에서 바로 열리는 "Dashboards with Grafana"의 AKS 템플릿으로 시작할 수 있다(Microsoft Learn).
업그레이드: 노드를 하나씩 바꾸는 원리
AKS의 노드 업그레이드는 새 노드를 먼저 추가하고(surge), 기존 노드의 pod를 내보낸 뒤(drain), 기존 노드를 지우는 과정을 반복한다. 이 속도와 안전성을 몇 가지 값으로 조절한다(Microsoft Learn).
- 설정 · 기본값 · 의미
- maxSurge · 1 · 한 번에 더 만드는 노드 수. 운영 환경 권장 33%
- maxUnavailable · 0 · 한 번에 비워도 되는 노드 수. 시스템 풀에는 설정 불가
- drain-timeout · 30분 · pod 내보내기를 기다리는 최대 시간(5분~24시간)
- node-soak-duration · 0 · 노드 하나를 바꾼 뒤 다음 노드로 가기 전 대기 시간(0~30분)
무중단 업그레이드의 진짜 열쇠는 앱 쪽에 있다. 레플리카가 2개 이상이고, PodDisruptionBudget으로 동시에 내려가도 되는 pod 수를 정해 두고, readiness probe가 제대로 동작해야 노드가 바뀌는 동안 트래픽이 끊기지 않는다. PDB가 너무 엄격하면 drain이 진행되지 못해 drain-timeout에 걸린다는 점도 기억한다.
블루-그린 방식의 노드풀 업그레이드(--upgrade-strategy bluegreen)도 있지만 아직 preview이고, 업그레이드하는 동안 용량이 두 배 필요하다(Microsoft Learn).
지원 종료 버전에 머물면 생기는 일
1회에서 짚었듯 2027년 6월 1일부터 AKS는 지원 종료 후 60일이 지난 클러스터를 플랫폼이 강제로 업그레이드한다. 이 업그레이드는 유지보수 시간대를 따르지 않고, deprecated API가 있어도 멈추지 않으며, PDB를 무시할 수 있다. 지원이 끝난 버전의 클러스터는 Resource Health에 Degraded로 표시된다. 당장 다음 차례는 1.34로, 2026년 11월에 지원이 끝난다(Microsoft Learn).
대비책은 2회의 자동 업그레이드 채널과 유지보수 시간대다. 한 버전에 오래 머물러야 하는 사정이 있다면 Premium 티어의 장기 지원(LTS)을 쓴다. 업그레이드 전에는 Azure Advisor가 알려 주는 deprecated API 사용 여부를 확인한다.
비용: 어디에 쓰는지부터 본다
비용 분석 애드온(--enable-cost-analysis)은 OpenCost 기반으로 Azure 비용 관리 화면에서 네임스페이스·워크로드 단위 비용을 보여 준다. Standard 이상 티어가 필요하고, EA·MCA 계약에서만 볼 수 있으며, Azure Disk CSI 드라이버가 켜져 있어야 한다(Microsoft Learn).
비용을 줄이는 대표적인 방법은 다음과 같다.
- 요청값 바로잡기: 5회의 VPA 추천값으로 과하게 잡힌 CPU·메모리 요청을 줄이면 같은 노드에 더 많은 pod가 들어간다.
- Spot 노드풀: 중단돼도 되는 작업을 할인된 Spot 노드로 보낸다.
- 클러스터 정지: 개발 클러스터는 az aks stop으로 밤과 주말에 멈춘다. 상태는 최대 12개월 보존되지만, 컨트롤러 없이 단독으로 만든 pod는 지워지고 API server IP가 바뀔 수 있다. 노드 자동 프로비저닝을 쓰는 클러스터는 정지할 수 없고, 다시 시작할 때 용량이 부족하면 실패할 수 있어 중요한 클러스터에는 권장하지 않는다(Microsoft Learn).
- 로그 수집 범위 줄이기: 앞서 본 Container Insights 프리셋을 조정한다.
백업: etcd 백업은 내 것이 아니다
1회에서 본 것처럼 Microsoft의 etcd 백업은 사용자가 복원할 수 없다. 워크로드와 데이터를 되돌리려면 Azure Backup for AKS를 쓴다. 클러스터에 백업 확장을 설치하고 신뢰할 수 있는 액세스(Trusted Access)를 켜며, 백업 자격 증명 모음은 클러스터와 같은 리전·구독에 둔다. Azure Disk와 Azure Files(SMB) 볼륨을 지원한다(Microsoft Learn).
- 저장 위치 · 특징
- Operational tier · 내 테넌트 안의 스냅샷, 최소 4시간 간격
- Vault tier · 하루 1개 복구 지점, 다른 리전 복원 지원, Azure Disk 전용
요금은 보호하는 네임스페이스 수에 따른 요금과 스냅샷 저장 요금으로 이뤄진다. 백업은 복원해 보기 전까지는 백업이 아니다. 분기에 한 번은 다른 네임스페이스로 복원 연습을 해 두자.
연재를 마치며: AKS 운영 점검표
- 운영 클러스터는 Standard 이상 티어, 가용 영역 분산 (1·2회)
- System 풀 분리, Azure Linux 2.0 등 은퇴 OS 없음 (2회)
- 자동 업그레이드 채널과 유지보수 시간대 설정 (2회)
- Azure CNI Overlay, 네트워크 정책 적용, 관리형 NGINX 이전 계획 (3회)
- Entra ID + Azure RBAC, 로컬 계정 끔, 워크로드 ID, Key Vault (4회)
- 레플리카 2개 이상, PDB, readiness probe, 적절한 요청값 (5·6회)
- 로그 수집 범위 조정, 비용 분석 켬 (6회)
- 워크로드 백업과 복원 연습 (6회)
이 점검표의 상당 부분은 AKS Automatic에서 기본으로 채워진다. 처음 시작한다면 Automatic으로 시작해 기본값을 이해하고, 꼭 필요한 곳만 바꾸는 것이 가장 빠른 길이다.
출처
- Enable monitoring for AKS clusters — Microsoft Learn
- Use Grafana dashboards in Azure Monitor — Microsoft Learn
- Upgrade AKS node pools with rolling upgrades — Microsoft Learn
- Blue-green node pool upgrade — Microsoft Learn
- Supported Kubernetes versions in AKS — Microsoft Learn
- AKS cost analysis — Microsoft Learn
- Stop and start an AKS cluster — Microsoft Learn
- Azure Kubernetes Service backup overview — Microsoft Learn
이 글은 공개 출처를 바탕으로 AI가 자동 생성한 초안을 검토해 발행했으며, 중요한 판단 전에는 연결된 원문을 확인해야 합니다.