1. 문제 정의
컨테이너 기반 애플리케이션을 대규모 환경에서 운영할 때 가장 큰 문제는 다음과 같다.
- Kubernetes Control Plane 운영 난이도
- 확장성, 보안, 네트워크 아키텍처의 복잡성
- 운영 자동화 및 모니터링 부족
- 고가용성과 장애 대응 절차 설계 부담
Azure AKS는 Control Plane을 완전 관리형으로 제공하여 이러한 운영 부담을 제거하고, 엔터프라이즈 환경에서 Kubernetes의 요구사항을 충족하도록 설계되었다.
2. 왜 Azure AKS인가
Azure 사용자는 AKS를 선택함으로써 다음과 같은 기능을 즉시 활용할 수 있다.
- Managed Control Plane 및 자동 패치
- Azure RBAC, AAD 인증 내장
- Native Azure Load Balancer, VNet, Application Gateway 통합
- Auto Scaling 및 Node Pool 확장
- Container Insights 기반 모니터링
공식 문서 링크 : https://learn.microsoft.com/azure/aks/intro-kubernetes
3. 사전 준비사항
필수 요소
- Azure Subscription
- VNet/Subnet 설계
- Azure CLI 설치
- ACR 사용 여부 결정
설계 시 반드시 고려해야 하는 항목
- Node Pool 분리(시스템/워크로드)
- Load Balancer 타입 선택
- Private Cluster 여부
- CNI 플러그인 선택(Azure CNI 또는 Overlay)
- Ingress vs Gateway API(Application Gateway for Containers)
4. AKS 기술 개념 심층 설명
4.1 AKS Control Plane 아키텍처
AKS에서 Control Plane은 Azure가 완전 관리한다. 사용자는 접근할 수 없으며 운영은 다음과 같이 수행된다.
- Kubernetes API 서버
- etcd 데이터 저장소
- Scheduler
- Controller Manager
Control Plane은 Region 내 여러 Zone에 분산될 수 있으며 SLA 구성도 가능하다.
4.2 Worker Node / Node Pool
AKS는 Worker Node를 VM Scale Set 기반으로 운영하며 Node Pool 단위로 확장, 업그레이드, 장애 조치가 이루어진다.
- System Node Pool: Control Plane 관련 부가 컴포넌트 실행
- User Node Pool: 애플리케이션 Pod 배포
4.3 Resource Group 구조 (중요)
AKS를 생성하면 두 개의 Resource Group이 존재한다.
사용자가 지정한 Resource Group
클러스터 메타데이터 및 관리 리소스를 보관.
자동 생성되는 Resource Group (MC로 시작)
형식:
MC_{원본RG}{클러스터명}{Region}
예시:
MC_aks-rg_aks-demo_koreacentral
이 그룹에는 다음 리소스가 생성된다:
- Virtual Machine Scale Sets
- Load Balancer (External or Internal)
- Managed Identity
- Managed Disk
- Virtual Network Interfaces
- Public IP
이는 AKS 작동을 위한 필수 인프라가 저장되는 공간이며 사용자가 직접 관리하지 않는 것이 일반적이다.
4.4 Networking 구조
AKS는 다음 3가지 네트워크 구성을 제공한다.
방식 설명
| Kubenet | Node IP는 Private, Pod는 NAT |
| Azure CNI | Pod마다 VNet IP 할당 |
| Overlay (AKS 1.31+) | CNI와 Pod Routing 최적화 |
권장 구성: Azure CNI 또는 Overlay
4.5 Load Balancing 구조
기본 설정: Azure Standard Load Balancer 생성
서비스 타입에 따라 다르게 동작한다.
Service Type 구성
| ClusterIP | 내부 통신 |
| NodePort | VM IP Node Port 사용 |
| LoadBalancer | Azure LB Public IP 생성 |
Public IP가 Pending일 경우 Subnet, NSG, LB provisioning 상태를 우선 확인한다.
5. 실제 구성 방법
CLI 기반 구성
az group create -n aks-rg -l koreacentral
az aks create \\
--resource-group aks-rg \\
--name aks-demo \\
--node-count 2 \\
--network-plugin azure \\
--generate-ssh-keys
Portal 구성 절차
- Kubernetes Services → Create
- Authentication → Azure AD 권장
- Networking → Azure CNI 또는 Overlay 설정
- Monitoring → Container Insights 활성화
- Node Pool 분리 구성
6. 단계별 튜토리얼
6.1 kubectl 연결
az aks get-credentials \\
--resource-group aks-rg \\
--name aks-demo
6.2 Sample Deployment
kubectl apply -f sample.yaml
YAML 예시
apiVersion: apps/v1
kind: Deployment
metadata:
name: app
spec:
replicas: 3
selector:
matchLabels:
app: demo
template:
metadata:
labels:
app: demo
spec:
containers:
- name: app
image: nginx
ports:
- containerPort: 80
6.3 Service 생성
kubectl expose deployment app \\
--type=LoadBalancer \\
--port=80
7. 구성 샘플 (엔터프라이즈형)
Private Cluster
az aks create \\
--resource-group aks-rg \\
--name aks-demo \\
--enable-private-cluster \\
--network-plugin azure
Node Pool 추가
az aks nodepool add \\
--resource-group aks-rg \\
--cluster-name aks-demo \\
--name userpool \\
--node-count 3
8. 자주 발생하는 문제 및 해결 방법
문제 1. External IP Pending
원인
- LB Subnet 연결 실패
- Public IP 할당 지연
해결
kubectl describe svc app
문제 2. Node 자원 부족
해결
kubectl describe node
Node Pool 확장:
az aks scale \\
--resource-group aks-rg \\
--name aks-demo \\
--node-count 3
문제 3. 클러스터 업그레이드 실패
점검 순서
- Node Pool 업그레이드 가능 여부
- Deployment Pod Disruption Budget 확인
- VM Scale Set 상태 확인
문서 링크: https://learn.microsoft.com/azure/aks/upgrade-cluster
9. 모니터링 & Observability
Container Insights 활성화
az aks enable-addons \\
--resource-group aks-rg \\
--name aks-demo \\
--addons monitoring
제공 기능:
- 로그 수집
- Metric 분석
- Pod/Node 상태 시각화
10. Best Practice
네트워크
- Private Cluster 권장
- Application Gateway for Containers 고려
- Azure CNI & Network Policy 활성화
보안
- Azure AD 인증
- Managed Identity 기반 ACR Pull
- RBAC + Namespace 기반 격리
운영
- Node Pool 최소 2개
- Blue-Green 또는 Canary 배포
- IaC(Terraform) 적용
결론
Azure AKS는 크고 복잡한 Kubernetes 운영을 단순화하며 Azure 네이티브 서비스와 깊이 결합된다. MC Resource Group 자동 생성 구조, Networking 모델, LB 구성 방식을 이해하면 엔터프라이즈 수준에서 AKS를 안정적으로 운영할 수 있다.
Azure 기반 Kubernetes 운영을 계획한다면 AKS는 가장 완성된 선택지이다.
이 글이 도움이 되었다면 저장 또는 공유하여 업데이트 내용을 추후 확인할 수 있다.
'DevOps > Cloud' 카테고리의 다른 글
| [Azure] Azure Front Door 보안 강화 (Service Tag + AFID 기반 백엔드 보호 전략) (0) | 2025.12.11 |
|---|---|
| [Azure] Azure Bastion + Key Vault Secret 기반 SSH 접속 (0) | 2025.12.02 |
| [Azure] Azure Virtual Desktop(AVD) 가이드 (0) | 2025.12.02 |
| [Cloud] AWS vs Azure 비교 완벽 가이드 (0) | 2025.11.28 |
| [Azure / AKS] AGIC vs Application Gateway for Containers (0) | 2025.11.28 |