본문 바로가기

Cloud/Azure

AKS - Azure Kubernetes Service

Azure에서 관리되는 Kubernetes Service

클러스터 배포를 단순화 하고, 호스팅되는 Kubernetes 서비스인 Azure는 상태 모니터링 및 유지 관리 같은 중요 작업을 처리한다.

AKS 클러스터를 배포할 때 Kubernetes 마스터 및 모든 노드가 배포되고 구성됩니다.

배포 프로세스 중에 고급 네트워킹, Azure AD(Azure Active Directory) 통합, 모니터링 및 기타 기능을 구성할 수 있습니다.

AKS는 Windows Server 컨테이너도 지원합니다.

⇒ 컨테이너 기반 애플리케이션 배포 및 관리를 더 간소화한다.

컨트롤 플레인

AKS 클러스터를 만들면 컨트롤 플레인이 자동으로 만들어지고 구성됩니다. 

이 컨트롤 플레인은 사용자로부터 추상화된 관리형 Azure 리소스로 무료로 제공됩니다. 

AKS 클러스터에 연결된 노드에 대해서만 비용을 지불합니다. 컨트롤 플레인 및 해당 리소스는 클러스터를 생성한 영역에만 있습니다.
컨트롤 플레인에 포함되는 핵심 Kubernetes 구성 요소는 다음과 같습니다.

구성 요소 설명
kube-apiserver API 서버는 기본 Kubernetes API를 공개하는 방법입니다. kubectl 또는 Kubernetes 대시보드와 같은 관리 도구에 대한 상호 작용을 제공합니다.
etcd 고가용성 etcd는 Kubernetes 클러스터 및 구성의 상태를 유지 관리하기 위해 Kubernetes 내에 있는 키 값 저장소입니다.
kube-scheduler 애플리케이션을 만들거나 스케일링할 때 스케줄러는 워크로드를 실행할 수 있는 노드를 결정하고 시작합니다.
kube-controller-manager 컨트롤러 관리자는 Pod 복제 및 노드 작업 처리와 같은 작업을 수행하는 여러 작은 컨트롤러를 감독합니다.

AKS는 호스트된 Kubernetes 환경을 관리하므로 Azure에서 컨테이너화된 애플리케이션을 쉽게 배포하고 관리할 수 있습니다. 
Kubernetes 클러스터 마스터는 Azure에서 관리되며, 클러스터에서 에이전트 노드를 관리하고 노드가 실행되고 있는 VM에 해당하는 요금만 지급합니다.
Azure Portal에서 클러스터를 만들거나 Azure CLI를 사용할 수 있습니다. 
AKS를 사용하면 고유한 사용자 지정 Kubernetes 클러스터를 실행하는 것에 비해 복잡성이나 운영 오버헤드 없이 오픈 소스 Kubernetes를 활용할 수 있습니다.

네임스페이스

Pod 및 배포와 같은 Kubernetes 리소스는 AKS 클러스터를 분할하고 논리적으로 네임스페이스로 그룹화됩니다.

사용자는 할당된 네임스페이스 내의 리소스와만 상호 작용할 수 있습니다.

비용

Kubernetes 클러스터의 배포, 관리 및 운영에서 AKS와 관련된 비용은 없습니다. Kubernetes 클러스터에서 사용하는 가상 머신 인스턴스, 스토리지 및 네트워킹 리소스에 해당하는 요금만 지급합니다.

Azure 부하 분산 장치

구성된 부하 분산 및 아웃바운드 규칙 수에 대해서만 요금이 청구됩니다.

인바운드 NAT 규칙은 무료입니다.

규칙을 구성하지 않으면 표준 Load Balancer에 대한 시간당 요금이 청구되지 않습니다.

서비스

서비스는 Pod 그룹 앞에 위치하고 정적 IP 주소를 제공합니다. 서비스에 도달하는 트래픽은 일련의 백 엔드 Pod에 라운드 로빈 방식으로 배포됩니다.

Pod의 IP 주소가 시간이 지남에 따라 변경되면 서비스는 변경 내용을 추적하여 네트워크 트래픽이 여전히 올바른 Pod로 전송되는지 확인합니다.

Azure CNI(Azure Container Network Interface)

Azure CNI는 컨테이너를 Azure Virtual Network와 함께 사용할 수 있도록 하는 플러그인 입니다.

Kubernetes 클러스터에서 Azure CNI를 사용하면 V-Net에서 Pod에 IP 주소를 할당할 수 있습니다. 그러면 Pod는 V-Net에서 통신할 수 있습니다.

ExpressRoute 또는 VPN을 사용하여 다른 Pod, 피어링된 네트워크 또는 온-프레미스 네트워크에 연결하거나 Private Link를 사용하여 다른 Azure 서비스에 연결할 수 있습니다.

AKS 생성

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

Azure Portal을 사용하여 클러스터를 만드는 경우 미리 설정된 구성을 선택하여 시나리오에 따라 빠르게 사용자 지정할 수 있음. 설정된 값은 수정할 수 있다.

설정 설명
표준 무엇을 선택해야 할지 잘 모르는 경우에 가장 적합합니다. 대부분의 애플리케이션에서 잘 작동합니다.
개발/테스트 AKS를 실험하거나 테스트 애플리케이션을 배포하는 데 가장 적합합니다.
비용 최적화 중단을 허용할 수 있는 프로덕션 워크로드의 비용을 줄이는 데 가장 적합합니다.
일괄 처리 기계 학습, 컴퓨팅 집약적 및 그래픽 집약적 워크로드에 가장 적합합니다. 클러스터의 빠른 확장 및 스케일 아웃이 필요한 애플리케이션에 적합합니다.
강화된 액세스 보안 및 안정성을 완전히 제어해야 하는 대기업에 가장 적합합니다.

한 구독에 노드 할당량이 있으며 최대 노드는 1000개 이다.

노드 풀

AKS(Azure Kubernetes Service)에서 동일한 구성의 노드가 노드 풀에 하나로 그룹화됩니다.

네트워킹

 

 

참고 :

https://learn.microsoft.com/ko-kr/azure/architecture/reference-architectures/containers/aks/baseline-aks

 

AKS 클러스터를 위한 기본 아키텍처 - Azure Architecture Center

AKS(Azure Kubernetes Service) 클러스터를 배포하는 기본 인프라의 참조 아키텍처입니다.

learn.microsoft.com

https://learn.microsoft.com/ko-kr/azure/aks/learn/quick-kubernetes-deploy-terraform?toc=https%3A%2F%2Flearn.microsoft.com%2Fko-kr%2Fazure%2Faks%2Ftoc.json&bc=https%3A%2F%2Flearn.microsoft.com%2Fko-kr%2Fazure%2Fbread%2Ftoc.json&tabs=bash

 

빠른 시작: Terraform을 사용하여 AKS(Azure Kubernetes Service) 클러스터 만들기 - Azure Kubernetes Service

Terraform을 사용하여 Kubernetes 클러스터를 빠르게 만들고 AKS(Azure Kubernetes Service)에서 애플리케이션을 배포하는 방법을 알아봅니다.

learn.microsoft.com

https://learn.microsoft.com/ko-kr/azure/aks/create-node-pools

 

AKS(Azure Kubernetes Service)에서 노드 풀 만들기 - Azure Kubernetes Service

AKS(Azure Kubernetes Service)에서 클러스터에 대한 여러 노드 풀을 만드는 방법을 알아봅니다.

learn.microsoft.com

 

'Cloud > Azure' 카테고리의 다른 글

Azure - 가용성 집합 (Availability Set)  (0) 2023.11.17
Azure OpenAI  (0) 2023.11.14