[Azure] AKS(Azure Kubernetes Service) 살펴보기

2025. 11. 28. 16:10·DevOps/Cloud
반응형

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 구성 절차

  1. Kubernetes Services → Create
  2. Authentication → Azure AD 권장
  3. Networking → Azure CNI 또는 Overlay 설정
  4. Monitoring → Container Insights 활성화
  5. 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. 클러스터 업그레이드 실패

점검 순서

  1. Node Pool 업그레이드 가능 여부
  2. Deployment Pod Disruption Budget 확인
  3. 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
'DevOps/Cloud' 카테고리의 다른 글
  • [Azure] Azure Bastion + Key Vault Secret 기반 SSH 접속
  • [Azure] Azure Virtual Desktop(AVD) 가이드
  • [Cloud] AWS vs Azure 비교 완벽 가이드
  • [Azure / AKS] AGIC vs Application Gateway for Containers
Cloud & DevOps Engineering
Cloud & DevOps Engineering
Azure, AWS, NCP 기반의 멀티클라우드 환경에서 DevOps, Kubernetes, 자동화, 운영 노하우와 실전 아키텍처를 공유합니다.
  • Cloud & DevOps Engineering
    CMP Blog
    Cloud & DevOps Engineering
  • 전체
    오늘
    어제
    • 분류 전체보기 (24)
      • IT 꿀팁 (4)
      • DevOps (12)
        • Cloud (6)
        • Kubernetes (6)
      • AI (6)
      • 핑거푸드 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    copilot
    devops
    AI
    자격증
    Azure
    KeyVault
    cka
    aks
    github
    AGIC
    ncp
    claudecode
    Terrform
    nks
    MCP
    AIEngineering
    AFID
    kubernetes
    GatewayAPI
    AGfC
  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.5
Cloud & DevOps Engineering
[Azure] AKS(Azure Kubernetes Service) 살펴보기
상단으로

티스토리툴바