발전하는 나를 기록하기 위해

쿠버네티스 구성요소 본문

개발/Infra

쿠버네티스 구성요소

발폼도래 2024. 4. 29. 15:34
728x90
1. 컨트롤 플레인 컴포넌트:
API 서버: 클러스터의 중심이며, API를 통해 사용자와 상호 작용하고 쿠버네티스 리소스를 관리합니다.스케줄러: 새로 생성된 파드를 적절한 노드에 배치할 책임을 지닙니다.컨트롤러 매니저: 다양한 컨트롤러들을 실행하고 관리합니다.


2. 컨트롤러:
레플리케이션 컨트롤러: 원하는 수의 파드가 항상 실행되도록 보장합니다.엔드포인트 컨트롤러: 서비스에 대한 엔드포인트를 생성하고 관리합니다.서비스 컨트롤러: 서비스의 백엔드 포드를 관리합니다.노드 컨트롤러: 노드의 상태를 모니터링하고 관리합니다.데몬 셋 컨트롤러: 모든 노드에 특정 파드를 실행하도록 합니다.


3. Kubelet:
각 노드에서 실행되는 에이전트이며, API 서버로부터 명령을 받아 컨테이너를 실행하고 관리합니다.파드 생성, 이미지 풀, 볼륨 마운트, 로그 관리 등을 담당합니다.


4. 파드 생성:
kubelet은 API 서버로부터 파드 생성 명령을 받으면 다음 단계를 수행합니다.
컨테이너 이미지 풀에서 이미지 다운로드: 파드 스펙에 지정된 컨테이너 이미지를 컨테이너 이미지 풀에서 다운로드합니다.컨테이너 실행: 다운로드된 이미지를 기반으로 컨테이너를 실행합니다.볼륨 마운트: 파드 스펙에 지정된 볼륨을 마운트합니다.네트워킹 설정: 파드에 네트워크 정책을 적용하고 네트워킹을 설정합니다.로그 수집: 컨테이너 로그를 수집하고 API 서버로 전송합니다.


5. API 서버, 스케줄러, 컨트롤러 매니저, Kubelet의 상호 작용:
사용자가 API 서버를 통해 쿠버네티스 리소스를 생성하거나 수정하면, API 서버는 변경 사항을 저장하고 관련 컨트롤러에 알립니다.스케줄러는 새로 생성된 파드를 적절한 노드에 배치하기 위해 노드의 리소스 사용량과 상태를 고려합니다.컨트롤러 매니저는 다양한 컨트롤러를 실행하고 관리하며, 각 컨트롤러는 특정 유형의 쿠버네티스 리소스를 담당합니다.Kubelet은 각 노드에서 실행되는 에이전트이며, API 서버로부터 파드 생성, 컨테이너 실행, 볼륨 마운트 등의 명령을 받아 수행합니다.