AKS
Azure Kubernetes Service
Azure의 관리형 Kubernetes. 클러스터 운영 자동화. Azure 서비스와 통합.
Azure Kubernetes Service
Azure의 관리형 Kubernetes. 클러스터 운영 자동화. Azure 서비스와 통합.
AKS(Azure Kubernetes Service)는 Microsoft Azure에서 제공하는 완전 관리형 Kubernetes 서비스입니다. Control Plane(API 서버, etcd, 스케줄러)을 Azure가 무료로 관리해주며, 사용자는 Worker Node에 대한 비용만 지불합니다.
2018년 GA(정식 출시) 이후 빠르게 성장하여 현재 전 세계 60개 이상의 Azure 리전에서 사용 가능합니다. Azure Active Directory(Entra ID)와 네이티브 통합되어 RBAC 기반 접근 제어가 간편하고, Azure DevOps/GitHub Actions와의 CI/CD 연동이 원활합니다.
AKS는 Azure CNI, Kubenet 등 다양한 네트워크 모델을 지원하며, Azure Container Registry(ACR)와 자동 인증 연동이 가능합니다. Virtual Node 기능을 통해 Azure Container Instances(ACI)로 버스트 스케일링도 지원합니다.
실무에서 AKS는 .NET 기반 엔터프라이즈 워크로드나 Windows Container가 필요한 경우 특히 강력한 선택지입니다. Azure의 다른 PaaS 서비스(Azure SQL, Cosmos DB, Key Vault 등)와 Managed Identity를 통해 비밀번호 없이 안전하게 연동할 수 있습니다.
# AKS 클러스터 생성
az aks create \
--resource-group myResourceGroup \
--name myAKSCluster \
--node-count 3 \
--node-vm-size Standard_D4s_v3 \
--enable-managed-identity \
--network-plugin azure \
--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
"AKS로 마이그레이션하면 Control Plane 관리 부담이 없어지고, Managed Identity로 Key Vault 연동하면 시크릿 관리도 깔끔해집니다. 현재 Azure 인프라 기반이니까 네트워크 통합도 수월할 거예요."
"AKS에서 프로덕션 클러스터를 운영한 경험이 있습니다. Azure CNI로 Pod에 VNet IP를 직접 할당해서 Azure Firewall과 NSG를 통한 네트워크 정책을 적용했고, AAD 연동으로 개발팀별 namespace 권한을 분리해서 관리했습니다."
"AKS 노드 풀에서 Spot Instance 노드가 선점되면서 Pod들이 Eviction됐네요. 중요 워크로드는 일반 노드 풀로 nodeSelector 설정하고, PodDisruptionBudget도 추가해서 가용성 확보합시다."
Kubenet은 Pod IP가 노드 내부용이라 Azure 서비스 직접 연동이 안 됩니다. Azure 서비스(Private Endpoint 등)와 통합이 필요하면 처음부터 Azure CNI를 선택하세요. 나중에 변경하려면 클러스터 재생성이 필요합니다.
AKS는 Kubernetes 버전을 N-2까지만 지원합니다. 자동 업그레이드 채널(stable, rapid, node-image)을 설정하지 않으면 지원 종료 버전을 사용하게 되어 보안 패치를 받지 못할 수 있습니다.
프로덕션 환경에서는 System 노드 풀과 User 노드 풀을 분리하고, Azure Policy로 거버넌스를 적용하세요. Container Insights를 활성화해서 로그/메트릭 모니터링도 필수입니다.