본문 바로가기
쿠버네티스 기타

쿠버네티스 컴포넌트 개요

by SAMSUNG CLOUD-OKY 2021. 5. 24.
반응형

Kubernetes 구성 요소

Kubernetes를 배포하면 클러스터가 생성됩니다.

Kubernetes 클러스터는 다음과 같은 작업자 머신 세트로 구성됩니다. 노드, 컨테이너화 된 애플리케이션을 실행합니다. 모든 클러스터에는 하나 이상의 작업자 노드가 있습니다.

작업자 노드는 포드이것이 애플리케이션 워크로드의 구성 요소입니다. 그만큼 컨트롤 플레인클러스터의 작업자 노드와 포드를 관리합니다. 프로덕션 환경에서 제어 플레인은 일반적으로 여러 컴퓨터에서 실행되고 클러스터는 일반적으로 여러 노드를 실행하여 내결함성 및 고 가용성을 제공합니다.

이 문서는 완전하고 작동하는 Kubernetes 클러스터를 갖추는 데 필요한 다양한 구성 요소에 대해 설명합니다.

다음은 모든 구성 요소가 함께 연결된 Kubernetes 클러스터의 다이어그램입니다.

컨트롤 플레인 구성 요소

제어 플레인의 구성 요소는 클러스터에 대한 글로벌 결정 (예 : 스케줄링)은 물론 클러스터 이벤트 감지 및 응답 (예 : 새 시작 현물 상환 지불배포 replicas필드가 만족스럽지 않을 때 ).

제어 플레인 구성 요소는 클러스터의 모든 시스템에서 실행할 수 있습니다. 그러나 간단하게하기 위해 설정 스크립트는 일반적으로 동일한 시스템에서 모든 제어 영역 구성 요소를 시작하고이 시스템에서 사용자 컨테이너를 실행하지 않습니다. 여러 VM에서 실행되는 제어 플레인 설정의 예 는 kubeadm으로 고 가용성 클러스터 생성을 참조하십시오 .

kube-apiserver

API 서버는 Kubernetes의 구성 요소입니다. 컨트롤 플레인Kubernetes API를 노출합니다. API 서버는 Kubernetes 제어 영역의 프런트 엔드입니다.

Kubernetes API 서버의 기본 구현은 kube-apiserver 입니다. kube-apiserver는 수평 적으로 확장하도록 설계되었습니다. 즉, 더 많은 인스턴스를 배포하여 확장됩니다. kube-apiserver의 여러 인스턴스를 실행하고 해당 인스턴스 간의 트래픽 균형을 맞출 수 있습니다.

etcd

모든 클러스터 데이터에 대한 Kubernetes의 백업 저장소로 사용되는 일관되고 가용성이 높은 키 값 저장소입니다.

Kubernetes 클러스터가 etcd를 백업 저장소로 사용하는 경우 해당 데이터에 대한 백업 계획 이 있는지 확인하십시오 .

공식 문서 에서 etcd에 대한 자세한 정보를 찾을 수 있습니다 .

kube-scheduler

새로 생성 된 것을 감시하는 컨트롤 플레인 구성 요소 포드 할당되지 않은 마디, 실행할 노드를 선택합니다.

일정 결정을 위해 고려되는 요소에는 개별 및 집합 적 리소스 요구 사항, 하드웨어 / 소프트웨어 / 정책 제약, 선호도 및 반 선호도 사양, 데이터 지역성, 워크로드 간 간섭 및 기한이 포함됩니다.

kube-controller-manager

실행되는 컨트롤 플레인 구성 요소 제어 장치 프로세스.

논리적으로 각각 제어 장치 별도의 프로세스이지만 복잡성을 줄이기 위해 모두 단일 바이너리로 컴파일되고 단일 프로세스에서 실행됩니다.

이러한 컨트롤러의 일부 유형은 다음과 같습니다.

  • 노드 컨트롤러 : 노드가 다운 될 때이를인지하고 응답합니다.
  • Job Controller : 일회성 작업을 나타내는 Job 객체를 감시 한 다음 해당 작업을 완료 할 때까지 실행할 포드를 만듭니다.
  • Endpoints 컨트롤러 : Endpoints 개체를 채 웁니다 (즉, 서비스 및 포드 조인).
  • 서비스 계정 및 토큰 컨트롤러 : 새 네임 스페이스에 대한 기본 계정 및 API 액세스 토큰을 만듭니다.

클라우드 컨트롤러 관리자

Kubernetes 컨트롤 플레인클라우드 관련 제어 로직을 포함하는 구성 요소. 클라우드 컨트롤러 관리자를 사용하면 클러스터를 클라우드 공급자의 API에 연결할 수 있으며 해당 클라우드 플랫폼과 상호 작용하는 구성 요소를 클러스터와 만 상호 작용하는 구성 요소와 분리 할 수 ​​있습니다.

cloud-controller-manager는 클라우드 공급자와 관련된 컨트롤러 만 실행합니다. 자체 전제 또는 자체 PC 내부의 학습 환경에서 Kubernetes를 실행하는 경우 클러스터에 클라우드 컨트롤러 관리자가 없습니다.

kube-controller-manager와 마찬가지로 cloud-controller-manager는 논리적으로 독립적 인 여러 제어 루프를 단일 프로세스로 실행하는 단일 바이너리로 결합합니다. 성능을 향상 시키거나 오류를 허용하기 위해 수평으로 확장 할 수 있습니다 (두 개 이상의 복사본 실행).

다음 컨트롤러에는 클라우드 공급자 종속성이있을 수 있습니다.

  • 노드 컨트롤러 : 응답을 중지 한 후 클라우드에서 노드가 삭제되었는지 확인하기 위해 클라우드 공급자를 확인합니다.
  • 경로 컨트롤러 : 기본 클라우드 인프라에서 경로 설정 용
  • 서비스 컨트롤러 : 클라우드 공급자로드 밸런서를 생성, 업데이트 및 삭제합니다.

노드 구성 요소

노드 구성 요소는 모든 노드에서 실행되며 실행중인 포드를 유지하고 Kubernetes 런타임 환경을 제공합니다.

Kubelet

각각에서 실행되는 에이전트 마디클러스터에서. 그것은용기 에서 실행 중입니다 현물 상환 지불.

kubelet은 다양한 메커니즘을 통해 제공되는 일련의 PodSpec을 가져와 해당 PodSpec에 설명 된 컨테이너가 실행되고 정상 상태인지 확인합니다. kubelet은 Kubernetes에서 생성되지 않은 컨테이너를 관리하지 않습니다.

kube-proxy

kube-proxy는 각각에서 실행되는 네트워크 프록시입니다. 마디 클러스터에서 Kubernetes의 일부 구현 서비스 개념.

kube-proxy 는 노드에서 네트워크 규칙을 유지합니다. 이러한 네트워크 규칙은 클러스터 내부 또는 외부의 네트워크 세션에서 Pod로 네트워크 통신을 허용합니다.

kube-proxy는 운영 체제 패킷 필터링 계층이 있고 사용 가능한 경우이를 사용합니다. 그렇지 않으면 kube-proxy가 트래픽 자체를 전달합니다.

컨테이너 런타임

컨테이너 런타임은 컨테이너 실행을 담당하는 소프트웨어입니다.

Kubernetes는 여러 컨테이너 런타임을 지원합니다. Docker, 컨테이너, CRI-O Kubernetes CRI (Container Runtime Interface) 의 모든 구현 .

애드온

애드온은 Kubernetes 리소스 (DaemonSet, 전개등)을 사용하여 클러스터 기능을 구현합니다. 이들은 클러스터 수준의 기능을 제공하기 때문에 애드온에 대한 네임 스페이스 리소스는 kube-system네임 스페이스 내에 속합니다 .

선택한 애드온은 아래에 설명되어 있습니다. 가능한 애드온의 확장 목록을 참조하십시오 부가 기능을 .

DNS

다른 애드온이 반드시 필요한 것은 아니지만 많은 예제에서 의존하는 모든 Kubernetes 클러스터에는 클러스터 DNS 가 있어야 합니다 .

클러스터 DNS는 Kubernetes 서비스에 대한 DNS 레코드를 제공하는 사용자 환경의 다른 DNS 서버 외에 DNS 서버입니다.

Kubernetes에서 시작된 컨테이너는 DNS 검색에이 DNS 서버를 자동으로 포함합니다.

웹 UI (대시 보드)

Dashboard 는 Kubernetes 클러스터를위한 범용 웹 기반 UI입니다. 이를 통해 사용자는 클러스터 자체뿐만 아니라 클러스터에서 실행중인 응용 프로그램을 관리하고 문제를 해결할 수 있습니다.

컨테이너 리소스 모니터링

컨테이너 리소스 모니터링 은 중앙 데이터베이스의 컨테이너에 대한 일반 시계열 메트릭을 기록하고 해당 데이터를 검색하기위한 UI를 제공합니다.

클러스터 수준 로깅

클러스터 수준의 로깅 메커니즘은 검색 / 검색 인터페이스를 중앙 로그 저장소에 컨테이너 로그를 저장하는 책임이있다.

 

 

 

 

 

 

https://kubernetes.io/docs/concepts/overview/components/

반응형

댓글