반응형
쿠버네티스의 아키텍처는 컨테이너화된 애플리케이션을 배포, 관리, 확장하기 위해 설계된 모듈식 구조를 가지고 있습니다.
주요 구성 요소는 마스터 노드와 워커 노드로 나누어집니다. 아래에 쿠버네티스 아키텍처의 그림과 함께 각 구성 요소를 설명하겠습니다.
1. 마스터 노드 (Control Plane)
마스터 노드는 클러스터를 관리하고 제어하는 역할을 합니다. 주요 구성 요소는 다음과 같습니다:
a. API 서버 (kube-apiserver)
- 역할: 모든 API 요청을 처리하며, 클러스터의 중앙 제어 포인트입니다.
- 기능: 클라이언트 요청을 인증하고, 유효성을 검사하며, etcd와 상호작용합니다.
b. 컨트롤러 매니저 (kube-controller-manager)
- 역할: 클러스터 상태를 모니터링하고, 원하는 상태로 유지합니다.
- 기능: 다양한 컨트롤러(노드 컨트롤러, 레플리케이션 컨트롤러, 엔드포인트 컨트롤러 등)가 포함되어 있습니다.
c. 스케줄러 (kube-scheduler)
- 역할: 새로 생성된 포드를 적절한 워커 노드에 할당합니다.
- 기능: 리소스 요구 사항, 정책, 장애 내성 등을 고려하여 스케줄링 결정을 내립니다.
d. etcd
- 역할: 모든 클러스터 데이터를 저장하는 고가용성 키-값 저장소입니다.
- 기능: 클러스터 상태, 구성 데이터 등을 저장합니다.
2. 워커 노드 (Node)
워커 노드는 컨테이너화된 애플리케이션을 실제로 실행하는 역할을 합니다. 주요 구성 요소는 다음과 같습니다:
a. kubelet
- 역할: 각 노드에서 실행되며, 마스터 노드의 명령을 수신하고 실행합니다.
- 기능: 포드를 실행하고, 상태를 모니터링하며, 마스터 노드에 보고합니다.
b. kube-proxy
- 역할: 클러스터 내에서 네트워크 통신을 처리합니다.
- 기능: 네트워크 규칙을 적용하고, 서비스 간 통신을 지원합니다.
c. 컨테이너 런타임
- 역할: 컨테이너를 실제로 실행하는 소프트웨어입니다.
- 기능: Docker, containerd, CRI-O 등이 포함됩니다.
3. 주요 개념
a. 포드 (Pod)
- 역할: 쿠버네티스의 최소 배포 단위로, 하나 이상의 컨테이너를 포함합니다.
- 기능: 동일한 네트워크 네임스페이스를 공유하며, 스토리지 볼륨을 사용할 수 있습니다.
b. 서비스 (Service)
- 역할: 포드의 집합에 단일 IP 주소와 DNS 이름을 제공하여, 클러스터 내외부에서 접근할 수 있게 합니다.
- 기능: 로드 밸런싱과 서비스 디스커버리를 제공합니다.
c. 디플로이먼트 (Deployment)
- 역할: 애플리케이션의 배포 및 관리를 위한 선언적 설정을 제공합니다.
- 기능: 롤링 업데이트 및 롤백을 지원합니다.
d. 네임스페이스 (Namespace)
- 역할: 클러스터 리소스를 가상으로 분리하여 여러 사용자 또는 팀이 하나의 클러스터를 공유할 수 있게 합니다.
- 기능: 리소스 격리를 통해 보안과 자원 관리를 효율화합니다.
4. 아키텍처 요약
- 마스터 노드:
- API 서버: 중앙 제어 포인트
- 컨트롤러 매니저: 클러스터 상태 유지
- 스케줄러: 포드 할당
- etcd: 상태 저장
- 워커 노드:
- kubelet: 노드 관리
- kube-proxy: 네트워크 통신
- 컨테이너 런타임: 컨테이너 실행
- 기본 구성 요소:
- 포드: 최소 배포 단위
- 서비스: 네트워크 접근
- 디플로이먼트: 애플리케이션 배포
- 네임스페이스: 리소스 격리
쿠버네티스의 아키텍처는 이처럼 다양한 구성 요소들이 상호작용하여 컨테이너화된 애플리케이션의 배포, 관리, 확장을 자동화합니다. 이를 통해 운영자는 복잡한 애플리케이션 환경을 효율적으로 관리할 수 있습니다.
반응형
'가상 머신 > 쿠버네티스' 카테고리의 다른 글
[ 쿠버네티스 / Kurbernetes ] K8s 구성하는 주요 프로세스 (0) | 2024.07.03 |
---|---|
[ 쿠버네티스 / Kurbernetes ] 이미지가 컨테이너에서 실행되는 과정 순서대로 보기 (0) | 2024.07.02 |
[ 쿠버네티스 / Kurbernetes ] 쿠버네티스 사용해서 다음 문제를 해결하자. (0) | 2024.07.02 |
[ 쿠버네티스 / Kurbernetes ] 쿠버네티스의 역사 (0) | 2024.07.02 |
[ 쿠버네티스 / Kubernetes ] 쿠버네티스에 대해서 간략하게 알아보기 (0) | 2024.07.02 |