반응형
Kubernetes(K8s) 클러스터를 구성하는 코어 프로세스는 클러스터의 관리와 오케스트레이션을 담당하며, 주요 구성 요소는 다음과 같습니다:
1. 마스터 노드 (Control Plane)
마스터 노드는 클러스터를 관리하고 모든 노드 간의 조정을 담당합니다. 주요 구성 요소는 다음과 같습니다:
- kube-apiserver:
- Kubernetes API 서버로, 클러스터의 중앙 제어 부분입니다.
- 클러스터의 모든 요청을 받아들이고, 유효성을 검사하며, RESTful API를 통해 다른 구성 요소와 통신합니다.
- etcd:
- 분산 키-값 데이터베이스로, 클러스터의 상태 정보를 저장합니다.
- 모든 마스터 노드 구성 요소와 클러스터의 상태를 공유하며, 고가용성을 위해 복제본을 유지합니다.
- kube-scheduler:
- 새로 생성된 Pod를 적절한 노드에 할당하는 역할을 합니다.
- CPU, 메모리, 네트워크와 같은 리소스 요구사항과 정책을 기반으로 스케줄링 결정을 내립니다.
- kube-controller-manager:
- 여러 컨트롤러를 실행하는 데몬으로, 각 컨트롤러는 클러스터의 상태를 원하는 상태로 유지하는 역할을 합니다.
- 주요 컨트롤러에는 복제 컨트롤러, 노드 컨트롤러, 서비스 계정 및 토큰 컨트롤러 등이 있습니다.
- cloud-controller-manager:
- 클라우드 제공자와의 통합을 담당합니다.
- 노드 컨트롤러, 라우트 컨트롤러, 서비스 컨트롤러 등을 포함하며, 클라우드 리소스와 Kubernetes 리소스를 연결합니다.
2. 워커 노드 (Worker Nodes)
워커 노드는 실제 애플리케이션 워크로드를 실행하는 노드입니다. 주요 구성 요소는 다음과 같습니다:
- kubelet:
- 각 워커 노드에서 실행되는 에이전트입니다.
- Pod 및 컨테이너의 생명 주기를 관리하고, 마스터 노드와 통신하여 클러스터 상태를 보고합니다.
- kube-proxy:
- 네트워크 프록시로, Kubernetes 서비스의 네트워크 규칙을 구현합니다.
- 클러스터 내에서 네트워크 트래픽이 올바르게 라우팅되도록 하며, 서비스 디스커버리와 로드 밸런싱을 처리합니다.
- Container Runtime:
- 컨테이너를 실행하고 관리하는 소프트웨어입니다.
- Docker, containerd, CRI-O 등이 여기에 포함됩니다.
3. 클러스터 통신 및 관리
- Pod:
- Kubernetes에서 가장 작은 배포 단위로, 하나 이상의 컨테이너 그룹을 의미합니다.
- 각 Pod는 고유한 IP 주소를 가지며, 같은 노드 내의 다른 Pod들과 통신할 수 있습니다.
- Service:
- Pod의 집합에 대한 정책적 접근 방식을 제공하는 추상화입니다.
- 로드 밸런싱, 서비스 디스커버리 등을 통해 Pod와 외부 간의 통신을 관리합니다.
이러한 구성 요소들이 협력하여 Kubernetes 클러스터를 관리하고, 확장 가능하고 신뢰할 수 있는 애플리케이션 배포 환경을 제공합니다.
반응형
'가상 머신 > 쿠버네티스' 카테고리의 다른 글
[ 쿠버네티스 / Kurbernetes ] Pod의 라이프 사이클 (0) | 2024.07.03 |
---|---|
[ 쿠버네티스 / Kurbernetes ] Pod의 특징 (0) | 2024.07.03 |
[ 쿠버네티스 / Kurbernetes ] 이미지가 컨테이너에서 실행되는 과정 순서대로 보기 (0) | 2024.07.02 |
[ 쿠버네티스 / Kurbernetes ] 아키텍쳐 보기 (0) | 2024.07.02 |
[ 쿠버네티스 / Kurbernetes ] 쿠버네티스 사용해서 다음 문제를 해결하자. (0) | 2024.07.02 |