다음을 통해 공유


AKS(Azure Kubernetes Service)의 핵심 개념

이 문서에서는 Azure에서 대규모로 컨테이너화된 애플리케이션을 배포하고 운영하는 데 사용할 수 있는 관리되는 Kubernetes Service인 AKS(Azure Kubernetes Service)의 핵심 개념을 설명합니다.

Kubernetes란?

Kubernetes는 컨테이너화된 애플리케이션의 배포, 크기 조정, 관리를 자동화하기 위한 오픈 소스 컨테이너 오케스트레이션 플랫폼입니다. 자세한 내용은 공식 Kubernetes 설명서를 참조하세요.

AKS란?

AKS는 Kubernetes를 사용하여 컨테이너화된 애플리케이션의 배포, 관리 및 크기 조정을 간소화하는 관리되는 Kubernetes 서비스입니다. 자세한 내용은 AKS(Azure Kubernetes Service)란?을 참조하세요.

클러스터 구성 요소

AKS 클러스터는 다음 두 가지 주요 구성 요소로 구분됩니다.

  • 컨트롤 플레인: 컨트롤 플레인은 핵심 Kubernetes 서비스와 애플리케이션 워크로드의 오케스트레이션을 제공합니다.
  • 노드: 노드는 애플리케이션을 실행하는 기본 VM(가상 머신)입니다.

Kubernetes 컨트롤 플레인 및 노드 구성 요소의 스크린샷.

제어 평면

Azure 관리형 컨트롤 플레인은 클러스터를 관리하는 데 도움이 되는 여러 구성 요소로 구성됩니다.

구성 요소 설명
kube-apiserver API 서버(kube-apiserver)는 Kubernetes API를 노출하여 클러스터 내부 및 외부에서 클러스터에 대한 요청을 사용하도록 설정합니다.
etcd etcd는 Kubernetes 클러스터 및 구성의 상태를 유지하는 데 도움이 되는 고가용성 키-값 저장소입니다.
kube-scheduler 스케줄러(kube-scheduler)는 예약 결정을 내리고, 할당된 노드가 없는 새 Pod를 감시하고, 실행할 노드를 선택하는 데 도움이 됩니다.
kube-controller-manager 컨트롤러 관리자(kube-controller-manager)는 노드가 다운되면 알아차리고 응답하는 등의 컨트롤러 프로세스를 실행합니다.
cloud-controller-manager 클라우드 컨트롤러 관리자(cloud-controller-manager)는 클라우드 공급자와 관련된 컨트롤러를 실행하기 위한 클라우드 관련 제어 논리를 포함합니다.

노드

각 AKS 클러스터에는 Kubernetes 노드 구성 요소를 실행하는 하나 이상의 노드, 즉 Azure VM(Virtual Machines)이 있습니다. 다음 구성 요소는 각 노드에서 실행됩니다.

구성 요소 설명
kubelet kubelet은 컨테이너가 Pod에서 실행되고 있는지 확인합니다.
kube-proxy kube-proxy는 노드에서 네트워크 규칙을 유지 관리하는 네트워크 프록시입니다.
컨테이너 런타임 컨테이너 런타임은 컨테이너의 실행 및 수명 주기를 관리합니다.

Kubernetes 노드용 Azure 가상 머신 및 지원 리소스의 스크린샷

노드 구성

VM 크기 및 이미지

노드의 Azure VM 크기는 CPU, 메모리, 크기, 사용 가능한 스토리지 유형(예: 고성능 SSD 또는 일반 HDD)을 정의합니다. 선택하는 VM 크기는 워크로드 요구 사항 및 각 노드에서 실행하려는 Pod 수에 따라 달라집니다. 자세한 내용은 AKS(Azure Kubernetes Service)의 지원되는 VM 크기를 참조하세요.

AKS에서 클러스터 노드의 VM 이미지는 Ubuntu Linux, Azure Linux 또는 Windows Server 2022를 기반으로 합니다. AKS 클러스터를 만들거나 노드 수를 스케일 아웃하면 Azure 플랫폼에서 요청된 수의 VM을 자동으로 만들고 구성합니다. 에이전트 노드는 표준 VM으로 청구되므로 VM 크기 할인(Azure Reservations 포함)이 자동으로 적용됩니다.

OS 디스크

기본 OS 디스크 크기 조정은 임시 OS 디스크가 지원되지 않고 기본 OS 디스크 크기가 지정되지 않은 경우에만 새 클러스터 또는 노드 풀에서 사용됩니다. 자세한 내용은 기본 OS 디스크 크기 조정임시 OS 디스크를 참조하세요.

리소스 예약

AKS는 노드 리소스를 사용하여 노드가 클러스터의 일부로 작동하도록 지원합니다. 이를 사용하면 노드의 총 리소스와 AKS의 할당 가능한 리소스 간에 불일치가 발생할 수 있습니다. 노드 성능과 기능을 유지하기 위해 AKS는 각 노드에 CPU메모리라는 두 가지 형식의 리소스를 예약합니다. 자세한 내용은 AKS의 리소스 예약을 참조하세요.

OS

AKS는 Linux 노드 풀에 대한 노드 OS로 Ubuntu 22.04 및 Azure Linux 2.0을 지원합니다. Windows 노드 풀의 경우 AKS는 Windows Server 2022를 기본 OS로 지원합니다. Windows Server 2019는 Kubernetes 버전 1.32가 수명 사용 중지에 도달하면 사용 중지되며 향후 릴리스에서 지원되지 않습니다. Windows OS 버전을 업그레이드해야 하는 경우 Windows Server 2019에서 Windows Server 2022로 업그레이드를 참조하세요. AKS에서 Windows Server를 사용하는 방법에 대한 자세한 내용은 AKS(Azure Kubernetes Service)의 Windows 컨테이너 고려 사항을 참조하세요.

컨테이너 런타임

컨테이너 런타임은 컨테이너를 실행하고 노드에서 컨테이너 이미지를 관리하는 소프트웨어입니다. 런타임은 Linux 또는 Windows에서 컨테이너를 실행하기 위해 sys 호출 또는 OS 관련 기능을 추상화하는 데 도움이 됩니다. Linux 노드 풀의 경우 containerd는 Kubernetes 버전 1.19 이상에서 사용됩니다. Windows Server 2019 및 2022 노드 풀의 경우 containerd는 일반적으로 사용할 수 있으며 Kubernetes 버전 1.23 이상에서 유일한 런타임 옵션입니다.

Pod

Pod는 동일한 네트워크 및 스토리지 리소스를 공유하는 하나 이상의 컨테이너로 이루어진 그룹이자 컨테이너를 실행하는 방법에 대한 사양입니다. Pod는 일반적으로 컨테이너와 1:1로 매핑되지만 Pod에서 여러 컨테이너를 실행할 수 있습니다.

노드 풀

AKS에서 동일한 구성의 노드는 모두 노드 풀로 그룹화됩니다. 이러한 노드 풀에는 애플리케이션을 실행하는 기본 가상 머신 확장 집합 및 VM(가상 머신)이 포함됩니다. AKS 클러스터를 만들 때, 초기 노드 수와 그 크기(SKU)를 정의합니다. 이를 통해 시스템 노드 풀이 만들어집니다. 시스템 노드 풀의 주요 목적은 CoreDNS 및 konnectivity와 같은 중요 시스템 Pod를 호스트하는 것입니다. 컴퓨팅 또는 스토리지 수요가 다른 애플리케이션을 지원하기 위해 사용자 노드 풀을 만들 수 있습니다. 사용자 노드 풀의 기본 목적은 애플리케이션 Pod를 호스트하는 것입니다.

자세한 내용은 AKS에서 노드 풀 만들기AKS에서 노드 풀 관리를 참조하세요.

노드 리소스 그룹

Azure 리소스 그룹에서 AKS 클러스터를 만들 때 AKS 리소스 공급자는 노드 리소스 그룹이라는 두 번째 리소스 그룹을 자동으로 만듭니다. 이 리소스 그룹에는 VM(가상 머신), 가상 머신 확장 집합 및 스토리지를 포함하여 클러스터와 연결된 모든 인프라 리소스가 포함됩니다.

자세한 내용은 다음 리소스를 참조하세요.

네임스페이스

Pod 및 배포와 같은 Kubernetes 리소스는 AKS 클러스터를 분할하고 리소스에 대한 액세스의 만들기, 보기 및 관리하도록 논리적으로 네임스페이스로 그룹화됩니다.

다음 네임스페이스는 기본적으로 AKS 클러스터에서 만들어집니다.

네임스페이스 설명
default 기본 네임스페이스를 사용하면 새 네임스페이스를 만들지 않고도 클러스터 리소스 사용을 시작할 수 있습니다.
kube-node-lease kube-node-lease 네임스페이스를 사용하면 노드가 해당 가용성을 컨트롤 플레인에 전달할 수 있습니다.
kube-public kube-public 네임스페이스는 일반적으로 사용되지는 않지만 모든 사용자가 전체 클러스터에서 리소스를 볼 수 있도록 하는 데 사용할 수 있습니다.
kube-system kube-system 네임스페이스는 Kubernetes에서 coredns, konnectivity-agent, metrics-server 같은 클러스터 리소스를 관리하는 데 사용됩니다.

리소스와 애플리케이션이 논리적으로 분할된 Kubernetes 네임스페이스의 스크린샷

클러스터 모드

AKS에서는 자동(미리 보기) 또는 표준 모드로 클러스터를 만들 수 있습니다. AKS Automatic은 노드, 크기 조정, 보안 및 기타 미리 구성된 설정을 포함하여 클러스터 구성을 관리하는 좀 더 수준 높은 완전 관리형 환경을 제공합니다. AKS Standard는 노드 풀, 크기 조정 및 기타 설정을 관리하는 기능을 포함하여 클러스터 구성을 더 세부적으로 제어할 수 있게 해 줍니다.

자세한 내용은 AKS Automatic 및 Standard 기능 비교를 참조하세요.

가격 책정 계층

AKS는 클러스터 관리를 위한 세 가지 가격 계층인 무료, 표준프리미엄을 제공합니다. 선택하는 가격 책정 계층에 따라 클러스터를 관리하는 데 사용할 수 있는 기능이 결정됩니다.

자세한 내용은 AKS 클러스터 관리에 대한 가격 책정 계층을 참조하세요.

지원되는 Kubernetes 버전

자세한 내용은 AKS에서 지원되는 Kubernetes 버전을 참조하세요.

다음 단계

AKS의 핵심 개념에 대한 자세한 내용은 다음 리소스를 참조하세요.