Azure AKS
Azure Kubernetes Service
Azure의 관리형 Kubernetes 서비스. Control Plane 무료 관리. Azure 서비스 네이티브 통합.
Azure Kubernetes Service
Azure의 관리형 Kubernetes 서비스. Control Plane 무료 관리. Azure 서비스 네이티브 통합.
Azure AKS(Azure Kubernetes Service)는 Microsoft Azure에서 제공하는 완전 관리형 Kubernetes 서비스입니다. 'AKS'와 'Azure AKS'는 같은 서비스를 지칭하며, Control Plane(API 서버, etcd, 스케줄러, Controller Manager)을 Azure가 무료로 관리해주고 사용자는 Worker Node 비용만 지불합니다.
2018년 GA(정식 출시) 이후 빠르게 성장하여 현재 전 세계 60개 이상의 Azure 리전에서 사용 가능합니다. Azure Entra ID(구 Active Directory)와 네이티브 통합되어 RBAC 기반 접근 제어가 간편하고, Azure DevOps 및 GitHub Actions와의 CI/CD 연동이 원활합니다.
AKS는 Azure CNI, Kubenet, Azure CNI Overlay 등 다양한 네트워크 모델을 지원합니다. Azure Container Registry(ACR)와 자동 인증 연동이 가능하며, Virtual Node 기능을 통해 Azure Container Instances(ACI)로 버스트 스케일링도 지원합니다. Windows Container 노드 풀도 지원하여 .NET 워크로드에 적합합니다.
실무에서 AKS는 Microsoft 생태계(Active Directory, Azure DevOps, Visual Studio)를 이미 사용하는 조직에 특히 적합합니다. Managed Identity로 Azure SQL, Cosmos DB, Key Vault 등과 비밀번호 없이 안전하게 연동할 수 있으며, Azure Monitor와 Container Insights로 통합 모니터링이 가능합니다.
# AKS 클러스터 생성
az aks create \
--resource-group myResourceGroup \
--name myAKSCluster \
--node-count 3 \
--node-vm-size Standard_D4s_v3 \
--enable-managed-identity \
--network-plugin azure \
--enable-addons monitoring \
--generate-ssh-keys
# kubeconfig 가져오기
az aks get-credentials \
--resource-group myResourceGroup \
--name myAKSCluster
# 클러스터 노드 확인
kubectl get nodes
# ACR 연동 (이미지 풀 권한 부여)
az aks update \
--name myAKSCluster \
--resource-group myResourceGroup \
--attach-acr myContainerRegistry
# 노드 풀 추가 (GPU 노드)
az aks nodepool add \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name gpupool \
--node-count 2 \
--node-vm-size Standard_NC6s_v3
"AKS로 마이그레이션하면 Control Plane 관리 부담이 없어지고, Workload Identity로 Key Vault 연동하면 시크릿 관리도 깔끔해집니다. 현재 Azure 인프라 기반이니까 VNet 통합도 수월할 거예요. Azure CNI로 Pod에 직접 IP 할당하면 Azure Firewall 정책도 적용 가능하고요."
"AKS에서 프로덕션 클러스터를 운영한 경험이 있습니다. Azure CNI Overlay로 IP 주소 고갈 문제를 해결했고, AAD 연동으로 개발팀별 namespace 권한을 RBAC으로 분리했습니다. Container Insights로 로그 수집하고 Alert Rule로 Pod OOM 발생 시 Slack 알림도 설정했습니다."
"AKS 노드 풀에서 Spot Instance 노드가 선점되면서 Pod들이 Eviction됐네요. 중요 워크로드는 일반 노드 풀로 nodeSelector 설정하고, PodDisruptionBudget도 minAvailable: 2로 추가해서 가용성 확보합시다. Cluster Autoscaler가 새 노드 프로비저닝하는 동안 버틸 수 있도록요."
Kubenet은 Pod IP가 노드 내부용이라 Azure 서비스 직접 연동이 안 됩니다. Azure 서비스(Private Endpoint 등)와 통합이 필요하면 처음부터 Azure CNI를 선택하세요. 나중에 변경하려면 클러스터 재생성이 필요합니다.
AKS는 Kubernetes 버전을 N-2까지만 지원합니다. 자동 업그레이드 채널(stable, rapid, node-image)을 설정하지 않으면 지원 종료 버전을 사용하게 되어 보안 패치를 받지 못합니다. 6개월마다 마이너 버전 업그레이드 계획을 세우세요.
프로덕션에서는 System 노드 풀과 User 노드 풀을 분리하세요. Azure Policy로 거버넌스를 적용하고, Container Insights + Prometheus를 활성화해서 메트릭/로그 모니터링도 필수입니다. 클러스터 생성 시 Availability Zone 분산 배치도 잊지 마세요.