본문 바로가기

DevOps

[AKS] 개요

AKS란? [ 최신 업데이트: 2024.04.21 ]

AKS의 기능

1) ID 및 보안 관리
- Azure Policy를 사용하여 규정 준수 제어
- Kubernetes RBAC와 통합하여 클러스터 리소스에 대한 액세스 제한
- Entra ID를 사용하여 기존 ID 및 그룹 멤버 자격을 기반으로 Kubernetes 액세스 설정
2) 로깅 및 모니터링
- 컨테이너 인사이트와 통합하여 클러스터 및 컨테이너화된 애플리케이션 상태와 성능 모니터링
- 네트워크 관찰 기능을 설정하고 Prometheus 및 Grafana를 사용하여 네트워크 트래픽 데이터를 수집하고 시각화
3) 간소화된 배포
- Kubernetes용으로 미리 빌드된 클러스터 구성 사용
- KEDA(Kubernetes Event-Driven Autoscaler)를 사용하여 자동 크기 조정
- AKS영 Draft를 사용하여 소스 코드 준비하고 애플리케이션 프로덕션 준비
4) 클러스터 및 노드
- 스토리지를 노드 및 Pod에 연결하고 클러스터 구성 요소를 업그레이드하고 GPU 사용
- 혼합 운영 체제를 지원하기 위해 여러 노드 풀을 실행하는 클러스터 생성
- 클러스터 자동 크기 조정기 및 수평형 Pod 자동 크기 조정기를 사용하여 자동 크기 조정
- 컨테이너가 하드웨어 기반의 신뢰되는 실행 환경에서 실행될 수 있도록 기밀 컴퓨팅 노드가 포함된 클러스터 배포
5) 스토리지 볼륨 지원
- 영구 데이터를 위한 정적 및 동적 스토리지 볼륨 탑재
- 단일 Pod 액세스에는 Azure Disk를 사용하고 여러 동시 Pod 액세스에는 Azure Files 사용
- 고성능, 높은 처리량 및 짧은 대기 시간의 파일 공유를 위해 Azure NetApp Files 사용
6) 네트워킹
- 간단한 배포에는 Kubenet 네트워킹 활용하고 고급 시나리오에는 Azure CNI 네트워킹 활용
- 타사 CNI 플러그인 사용하려면 자체 CNI를 가져와야 함
- nginx를 사용한 애플리케이션 라우팅 추가 기능을 사용하여 클러스터에 배포된 애플리케이션에 쉽게 액세스
7) 개발 도구 통합
- Helm을 사용하여 AKS에서 개발
- 워크로드를 관리하려면 VS Code용 Kubernetes 확장을 설치
- Istio 기반 서비스 메시 추가 기능으로 Istio 기능을 활용

 

 

AKS의 할당량, 가상 머신 크기 제한 및 지역 가용성 [ 최신 업데이트: 2024.03.21 ]

서비스 할당량 및 제한

구독 당 클러스터 수, 포드 풀 당 최대 노드 수, 부하 분산 장치 SKU 별 최대 노드 수가 제한
Windows Server 컨테이너는 Azure CNI 네트워킹 플러그인을 사용
Kubenet은 Windows Server 컨테이너에서 지원되지 않음
Kubernetes 컨트롤 플레인 계층
- 표준 계층 : 부하에 따라 Kubernetes API 서버를 자동으로 스케일링
- 무료 계층 : 리소스의 진행 중 요청 제한이 있으며 권장되는 노드 제한이 클러스터당 10개

중요

AKS 클러스터를 업그레이드 하는 경우 추가 리소스가 일시적으로 사용
(가상 네트워크 서브넷의 사용 가능한 IP 주소나 가상 머신 vCPU 할당량 등)
Windows Server 컨테이너의 경우 이러한 추가 리소스 처리에 사용할 수 있는 IP 주소 공간 또는 vCPU 할당량이 없으면 클러스터 업그레이드 프로세스 실패

제한된 VM 크기

CPU가 2개 미만인 VM 크기는 AKS에서 사용할 수 없음
애플리케이션을 안정적으로 실행할 수 있도록 하려면 B 시리즈 및 A0, A1, A1_v2, F1, F1s SKU 사용하지 마세요

지원되는 컨테이너 이미지 크기

AKS는 컨테이너 이미지에 대한 제한을 설정하지 않음
그러나 컨테이너 이미지가 클수록 메모리 사용률이 높아짐
이로 인해 워커 노드의 전체 메모리를 초과할 수 있음
컨테이너 이미지가 아주 큰 경우(1TiB 이상) 디스크 공간이 부족하여 kubelet이 컨테이너 레지스트리에서 노드로 이미지를 끌어오지 못할 수 있음

Azure Portal의 클러스터 구성 미리 설정

프로덕션 표준
- AKS 권장 모범 사례를 사용하여 대부분에 애플리케이션에 적합
- 가용성 영역 / Azure Policy / Azure Monitor / 비밀 저장소 CSI 드라이버 사용 가능
- Azure CNI 네트워킹 사용
- Kubernetes RBAC이 있는 로컬 계정으로 인증 및 권한 부여
개발/테스트
- 새 워크로드를 개발하거나 기존 워크로드 테스트용
- kubenet 네트워킹 사용
- Kubernetes RBAC이 있는 로컬 계정으로 인증 및 권한 부여
프로덕션 경제
- 워크로드 중단을 허용하는 경우 비용 절약 목적
- Azure CNI 네트워킹 사용
- Azure RBAC을 사용한 Azure AD로 인증 및 권한 부여
프로덕션 엔터프라이즈
- 엄격한 권한과 강화된 보안 성능
- Azure CNI 네트워킹 사용
- Azure RBAC을 사용한 Azure AD로 인증 및 권한 부여

 

 

지원되는 Kubernetes 버전 [ 최신 업데이트: 2024.04.10 ]

Kubernetes 버전 지원

AKS는 특정 부 버전의 패치 릴리스를 최대 2개까지 지원
새로운 부 버전이 도입되면 가장 오래된 부 버전 및 패치 릴리스는 사용 중지되고 제거

플랫폼 지원 정책

n은 지원되는 최신 AKS GA(일반 공급) 부 버전
클러스터가 n-4로 떨어지기 전에 n-3 버전의 클러스터에 적용
v1.29가 최신 GA 버전인 경우 v1.26은 플랫폼 지원으로 간주
그러나 v1.30 GA 릴리스 중에는 v1.26이 v1.27로 자동 업그레이드

지원되는 kubectl 버전

kube-apiserver가 1.17이면 kubectl 1.16 ~ 1.18 버전 사용 가능

릴리스 및 사용 중단 프로세스

버전 제거 후 30일 동안 지원되는 부 버전 릴리스로 업그레이드하여 지원을 계속 받을 수 있음
버전이 더 이상 사용되지 않거나 제거되면 클러스터 또는 노드 풀을 더 이상 만들 수 없음

 

 

AKS와 추가 기능, 확장 및 기타 통합 [ 최신 업데이트: 2023.12.28 ]

추가 콘텐츠

추가 기능의 설치, 구성 및 수명 주기는 AKS에서 관리됨
az aks enable-addons 명령을 사용

사용 가능한 추가 기능

web_application_routing
- AKS 클러스터에서 관리되는 NGINX 수신 컨트롤러를 사용
ingress-appgw
- AKS 클러스터에서 Application Gateway 수신 컨트롤러를 사용
keda
- AKS 클러스터의 애플리케이션에 대한 이벤트 기반 자동 크기 조정을 사용
monitoring
- AKS 클러스터에서 컨테이너 인사이트 모니터링을 사용
azure-policy
- AKS용 Azure Policy를 사용하면 중앙 집중식으로 일관된 방식으로 클러스터에 대해 대규모 적용 및 보호 가능
azure-keyvault-secrets-provider
- Azure Keyvault 비밀 공급자 추가 기능을 사용
virtual-node
- AKS 클러스터에서 가상 노드를 사용
open-service-mesh
- AKS 클러스터에서 Open Service Mesh를 사용(사용 중지됨)

확장

클러스터 확장은 특정 Helm 차트를 기반으로 하며 kubernetes 클러스터를 기반으로 다양한 Azure 기능의 설치 및 수명 주기 관리를 위한 Azure Resource Manager 기반 환경 제공

확장과 추가 기능의 차이점

확장과 추가 기능 모두 AKS 클러스터에 기능을 추가하도록 지원되는 방법
추가 기능을 설치하면 기능이 Azure API의 AKS 리소스 공급자의 일부로 추가
확장을 설치하면 기능이 Azure API에서 별도의 리소스 공급자의 일부로 추가

Github Actions

GitHub 내에서 소프트웨어 개발 워크플로를 자동화

오픈 소스 및 타사 통합

Helm
- Kubernetes 애플리케이션의 수명 주기를 관리하는 오픈 소스 도구
Prometheus
- 오픈 소스 모니터링 및 경고 도구
Grafana
- 가시성을 위한 오픈 소스 대시보드
Couchbase
- 분산 NoSQL 클라우드 데이터베이스
OpenFaaS
- 컨테이너를 사용하여 서버리스 함수를 빌드하기 위한 오픈 소스 프레임워크
Apache Spark
- 대규모 데이터 처리를 위한 오픈 소스의 빠른 엔진
Istio
- 오픈 소스 서비스 메시
Linkerd
- 오픈 소스 서비스 메시
Consul
- 오픈 소스 ID 기반 네트워킹 솔루션

 

 

 

 

 

'DevOps' 카테고리의 다른 글

[AKS] 개념  (0) 2024.04.29
[AKS] 시작하기  (0) 2024.04.26
[ERROR] 해결 모음  (0) 2024.04.17
[Node.js] 실습1  (0) 2024.03.21
[Python] 기초  (0) 2023.12.28