IT/kubernetes

kubernetes 구성원리

by_k 2022. 3. 29. 19:35

Kubernetes는 마스터 노드 (마스터 노드), 작업자 노드 (슬레이브 노드 또는 작업자 노드), 클라이언트 명령 줄 도구 kubectl 및 기타 추가 항목을 포함한 마스터-슬레이브 분산 아키텍처를 사용한다.

 

그림1

Master Node : 클러스터 관리를 예약하기위한 마스터 노드

API Server, Scheduler, Cluster State Store 및 Controller-Manger Server로 구성됩니다. 그 기능은 다음과 같다.

  1. API 서버 : 통합 리소스 운영 포털을 제공하고 인증, 권한 부여, 액세스 제어, API 등록 및 검색을위한 메커니즘을 제공한다.
  2. 스케줄러 : 리소스 스케줄링을 담당하고 미리 정해진 스케줄링 전략에 따라 해당 노드에 포드를 스케줄링한다.
  3. 클러스터 상태 저장소(etcd) : 전체 클러스터의 상태를 저장하며 기본적으로 Etcd가 사용된다.
  4. Controller-Manger Server : 오류 감지, 자동 확장, 롤링 업데이트 등과 같은 클러스터 상태 유지를 담당한다.

Worker Node : 작업 노드, 컨테이너화 된 비즈니스 애플리케이션을 실행한다. kubelet, kube proxy 및 컨테이너 런타임을 포함한다.

kubelet : 컨테이너의 수명주기를 유지하고 CSI (Container Storage Interface) 및 CNI (Conteinre Network Interface)를 관리한다.

  1. kube-proxy : 공용 액세스 전략 (예 :로드 밸런싱)을 기반으로 팟에 액세스하는 방법을 제공한다.
  2. 컨테이너 런타임 : 이미지 관리 및 포드 및 컨테이너의 실제 운영을 담당한다.

kubectl : 클러스터에있는 다양한 리소스의 유지 관리 및 관리를 실현하기 위해 명령 줄을 통해 API 서버와 상호 작용하는 데 사용되는

Kubernetes 클러스터의 명령 줄 인터페이스

 

그림2

작동원리

  1. 애플리케이션 배포가 포함된 yaml파일을 준비한다음 kubectl 클라이언트도구를 통해 Maseter Node ApiServer로 전달한다.
  2. ApiServer는 클라이언트의 요청을 수신하고 데이터베이스 (etcd)에 리소스 콘텐츠를 저장한다.
  3. 컨트롤러 구성 요소 (스케줄러, 복제, 끝점 포함)는 리소스 변경을 모니터링하고 대응
  4. ReplicaSet는 데이터베이스의 변경 사항을 확인하고 원하는 수의 포드 인스턴스를 생성
  5. 스케줄러는 데이터베이스 변경 사항을 다시 확인하고 포드가 특정 실행 노드 (노드)에 할당되지 않았음을 찾은 다음 관련 규칙 집합에 따라 실행할 수있는 노드에 포드를 할당하고 포드 할당을 기록하는 데이터베이스(etc)에 저장한다.
  6. Kubelete는 데이터베이스 변경 사항을 모니터링하고 후속 포드의 수명주기를 관리하며 해당 포드가 위치한 노드에서 실행되도록 할당 된 포드를 검색한다. 새 포드가 발견되면 해당 노드에서 새 포드가 실행된다.

 

'IT > kubernetes' 카테고리의 다른 글

kubernetes dashboard 설치및 사용 가이드  (0) 2022.04.20
Helm3 이상 설치(windows)  (0) 2022.04.14