본문 바로가기

DevOps

[AKS] 개념

핵심 개념 [ 최신 업데이트: 2024.01.17 ]

Kubernetes 인프라 구성 요소

- 컨트롤 플레인

- 노드

- 노드 풀

워크로드 리소스

- Pod

- 배포

- 집합

네임스페이스를 사용하여 리소스를 그룹화

Azure에서 AKS 컨트롤 플레인을 관리하며 애플리케이션을 실행하는 AKS 노드에 대해서만 비용 지불

Kubernetes 클러스터 아키텍처

컨트롤 플레인 : 핵심 k8s 서비스와 애플리케이션 워크로드 오케스트레이션

노드 : 애플리케이션 워크로드 실행

Control Plane

kube-apiserver

- kubectl 또는 관리 도구에 대한 상호 작용 제공

etcd

- 클러스터 및 구성의 상태 유지 관리를 위해 k8s 내에 있는 키 값 저장소

kube-scheduler

- 스케줄러는 워크로드를 실행할 수 있는 노드를 결정하고 시작

kube-controller-manager

- Pod의 replica나 노드의 작업을 처리하는 여러 작은 컨트롤러 관리

컨트롤 플레인과의 상호작용은 kubectl 또는 k8s 대시보드와 같은 kubernetes API를 통해 수행

노드 및 노드 풀

AKS 클러스터에는 노드 구성 요소 및 컨테이너 런타임을 실행하는 하나 이상의 노드(=가상 머신)이 있음

kubelet

- 요청된 컨테이너의 예약 및 실행과 함께 컨트롤 플레인의 요청을 처리하는 에이전트

kebe-proxy

- 각 노드에서 가상 네트워킹을 처리

- 프록시는 네트워크 트래픽을 라우팅하고 서비스와 Pod에 대한 IP 주소 지정을 관리

컨테이너 런타임

- 컨테이너화된 애플리케이션에서 가상 네트워크 또는 스토리지와 같은 추가 리소스를 실행하고 상호 작용하게 함

- 대표적인 컨테이너 런타임은 Docker

리소스 예약

AKS는 노드 성능 및 기능을 유지하기 위해 각 노드에서 리소스를 예약

컨테이너 인사이트(OMS)와 같은 AKS 추가 기능을 사용하는 경우 추가 노드 리소스 사용

두 가지 종류의 리소스가 예약됨  

CPU

예약 CPU는 노드 유형 및 클러스터 구성에 따라서 달라지므로 추가 기능 실행으로 인해 할당 가능한 CPU가 줄어들 수 있음  

메모리

AKS 1.27 이상 및 이전 버전의 작동이 다름

kebelet deamon과 메모리 예약 비율이 다름  

노드 풀

동일한 구성의 노드는 노드 풀로 그룹화

k8s 클러스터에는 하나 이상의 노드 풀이 포함되며 클러스터가 안정적으로 작동하려면 둘 이상의 노드를 실행해야 함   

AKS 클러스터를 만들 때 기본 노드 풀의 초기 노드 수와 크기가 정의되며 기본 노드 풀에는 에이전트 노드를 실행하는 기본 VM이 포함  

특정 노드 풀의 업그레이드 작업의 경우 모든 노드가 성공적으로 업데이트될 때까지 실행 중인 컨테이너는 다른 노드 풀의 노드에 예약됨

노드 리소스 그룹

AKS 리소스 공급자는 노드 리소스 그룹이라는 별도의 리소스 그룹을 만들고 관리

노드 리소스 그룹에는 노드 풀의 모든 노드에대한 VMSS / 클러스터의 가상 네트워크 / 클러스터의 스토리지 포함

노드 리소스 그룹은 기존 리소스 그룹을 지정하거나 다른 구독을 지정할 수 없음

노드 리소스그룹 내에서 관리되는 리소스의 Azure에서 만든 태그를 수정하거나 삭제할 수 없음

Pod

k8s는 Pod를 사용하여 애플리케이션의 인스턴스 실행

Pod는 일반적으로 컨테이너와 1:1로 매핑

다중 컨테이너 Pod는 여러 개의 컨테이너가 포함되며 컨테이너에서 관련 리소스 공유 가능

Pod를 만들 때 일정량의 CPU 또는 메모리를 요청할 수 있으며 스케줄러가 사용 가능한 리소스가 있는 노드에서 실행되로록 Pod를 예

Pod는 일반적으로 일회용 리소스  

Helm을 사용한 패키지 관리

Helm은 k8s에서 애플리케이션을 관리하는 데 사용

패키지 버전의 애플리케이션 코드와 YAML 매니페스트가 포함된 기존 퍼블릭 Helm 차트를 빌드하고 사용하여 리소스를 배포

Helm 차트는 로컬 또는 원격 리포지토리(Azure Container Registry Helm 차트 리포지토리)에 저장

네임 스페이스

kube-system

- DNS 및 프록시와 같은 네트워크 기능이나 k8s 대시보드와 같은 핵심 리소스가 존재하는 곳  

 

 

AKS 가격 책정 계층 [ 최신 업데이트: 2024.03.01 ]

무료 계층

- 추가 비용 없이 AKS 실험하거나 처음 접하는 경우

- 노드가 10개 미만인 클러스터

표준 계층

- 프로덕션 워크로드 및 고가용성과 안정성이 필요한 경우

- 재정적으로 뒷받침되는 SLA가 필요한 경우

- 최대 5,000개의 노드가 있는 클러스터

프리미엄 계층

- 프로덕션 워크로드 및 고가용성과 안정성이 필요한 경우

- 재정적으로 뒷받침되는 SLA가 필요한 경우

- 모든 중요 워크로드에 2년 지원이 필요한 경우  

- 최대 5,000개의 노드가 있는 클러스터

작동 시간 SLA 사용 약관

가용성 영역을 사용하는 경우 99.95% 가용성 영역을 사용하지 않는 클러스터의 경우 99.9% 보장 

 

 

AKS 클러스터 유지 관리 및 업그레이드 [ 최신 업데이트: 2024.03.11 ]

유지 관리하는 데 필요한 두 가지 구성 요소: k8s 클러스터 버전 / 노드 이미지 버전

Linux 노드의 경우 무인 업데이트로 수행할 수 있지만 자동으로 다시 부팅하지 않으므로 업데이트 프로세스가 완료되지 않음

 

 

클러스터 백업 및 복구 [ 최신 업데이트: 2024.03.15 ]

AKS 백업은 어떻게 작동하나요?

AKS 클러스터 내에 Backup 확장을 반드시 설치해야 하며 Backup 자격 증명 모음과 통신하여 백업 및 복원 작업

AKS 백업을 구성할 때 스토리지 계정 및 Blob 컨테이너 값을 추가

Backup 확장과 함께 사용자 ID(=확장 ID)가 만들어지며 스토리지 계정 기여자 역할 할당

디스크 기반 영구 볼륨은 스냅샷 리소스 그룹에서 디스크 스냅샷으로 백업되며 운영 계층(=로컬 데이터 저장소)이라는 테넌트에 복구 지점 형성

현재 Azure Backup은 CSI 드라이버 기반 Azure Disk Storage에서 영구 볼륨만 지원

 

 

 

 

 

'DevOps' 카테고리의 다른 글

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