Kubernetes는 마스터 노드 (마스터 노드), 작업자 노드 (슬레이브 노드 또는 작업자 노드), 클라이언트 명령 줄 도구 kubectl 및 기타 추가 항목을 포함한 마스터-슬레이브 분산 아키텍처를 사용한다.
Master Node : 클러스터 관리를 예약하기위한 마스터 노드
API Server, Scheduler, Cluster State Store 및 Controller-Manger Server로 구성됩니다. 그 기능은 다음과 같다.
- API 서버 : 통합 리소스 운영 포털을 제공하고 인증, 권한 부여, 액세스 제어, API 등록 및 검색을위한 메커니즘을 제공한다.
- 스케줄러 : 리소스 스케줄링을 담당하고 미리 정해진 스케줄링 전략에 따라 해당 노드에 포드를 스케줄링한다.
- 클러스터 상태 저장소(etcd) : 전체 클러스터의 상태를 저장하며 기본적으로 Etcd가 사용된다.
- Controller-Manger Server : 오류 감지, 자동 확장, 롤링 업데이트 등과 같은 클러스터 상태 유지를 담당한다.
Worker Node : 작업 노드, 컨테이너화 된 비즈니스 애플리케이션을 실행한다. kubelet, kube proxy 및 컨테이너 런타임을 포함한다.
kubelet : 컨테이너의 수명주기를 유지하고 CSI (Container Storage Interface) 및 CNI (Conteinre Network Interface)를 관리한다.
- kube-proxy : 공용 액세스 전략 (예 :로드 밸런싱)을 기반으로 팟에 액세스하는 방법을 제공한다.
- 컨테이너 런타임 : 이미지 관리 및 포드 및 컨테이너의 실제 운영을 담당한다.
kubectl : 클러스터에있는 다양한 리소스의 유지 관리 및 관리를 실현하기 위해 명령 줄을 통해 API 서버와 상호 작용하는 데 사용되는
Kubernetes 클러스터의 명령 줄 인터페이스
작동원리
- 애플리케이션 배포가 포함된 yaml파일을 준비한다음 kubectl 클라이언트도구를 통해 Maseter Node ApiServer로 전달한다.
- ApiServer는 클라이언트의 요청을 수신하고 데이터베이스 (etcd)에 리소스 콘텐츠를 저장한다.
- 컨트롤러 구성 요소 (스케줄러, 복제, 끝점 포함)는 리소스 변경을 모니터링하고 대응
- ReplicaSet는 데이터베이스의 변경 사항을 확인하고 원하는 수의 포드 인스턴스를 생성
- 스케줄러는 데이터베이스 변경 사항을 다시 확인하고 포드가 특정 실행 노드 (노드)에 할당되지 않았음을 찾은 다음 관련 규칙 집합에 따라 실행할 수있는 노드에 포드를 할당하고 포드 할당을 기록하는 데이터베이스(etc)에 저장한다.
- Kubelete는 데이터베이스 변경 사항을 모니터링하고 후속 포드의 수명주기를 관리하며 해당 포드가 위치한 노드에서 실행되도록 할당 된 포드를 검색한다. 새 포드가 발견되면 해당 노드에서 새 포드가 실행된다.
'IT > kubernetes' 카테고리의 다른 글
kubernetes dashboard 설치및 사용 가이드 (0) | 2022.04.20 |
---|---|
Helm3 이상 설치(windows) (0) | 2022.04.14 |