반응형

목차

  1. 마스터 노드(컨트롤 플레인)
  2. 워커 노드
  3. 애드온

마스터 노드(컨트롤 플레인)

 컨트롤 플레인은 클러스터를 제어하고 작동시킵니다. 즉, 마스터 노드는 전체 쿠버네티스 시스템을 제어하고 관리하는 쿠버네티스 컨트롤 플레인을 실행한다고 말할 수 있습니다. 하나의 마스터 노드에서 실행하거나 여러 노드로 분할되고 복제돼 고가용성을 보장할 수 있는 여러 구성 요소로 구성됩니다.

  1. 구성 요소
    • etc 분산 저장 스토리지
    • API 서버
    • 스케줄러
    • 컨트롤러 매니저

    컨트롤 플레인의 구성 요소는 클러스터 상태를 유지하고 제어하지만 애플리케이션을 실행하지는 않습니다. 이는 노드에 의해 이루어집니다.

  2. 역할
    • 클러스터 상태 관리
      마스터 노드는 노드, 포드 및 서비스를 포함하여 클러스터의 모든 리소스 상태를 추적합니다.

    • 예약
      마스터 노드는 리소스 가용성 및 사용자 정의 정책을 기반으로 클러스터의 특정 노드에서 실행되도록 Pod(Kubernetes에서 배포 가능한 가장 작은 단위) 예약을 담당합니다.

    • 확장
      마스터 노드는 수요에 따라 클러스터에서 실행 중인 포드 수를 자동으로 확장 또는 축소할 수 있습니다.

    • 배포 업데이트 및 롤백
      마스터 노드는 배포 업데이트 및 롤백을 처리하여 애플리케이션 가동 중지 시간이 없도록 합니다.

    • 클러스터 전체 네트워킹 관리
      마스터 노드는 클러스터의 노드, 포드 및 서비스 간의 네트워크 연결을 설정하고 관리합니다.
  3. 주요 기능
    • 고가용성
      컨트롤 플레인의 가용성을 보장하기 위해 Kubernetes는 고가용성 구성에서 여러 마스터 노드 실행을 지원합니다. 이렇게 하면 하나의 마스터 노드가 실패하면 다른 마스터 노드가 대신할 수 있습니다.

    • 확장성
      Kubernetes 마스터 노드는 수천 개의 노드와 수만 개의 포드가 있는 대규모 클러스터를 처리할 수 있습니다.

    • 보안
      마스터 노드는 클러스터에 대한 액세스를 인증하고 승인하여 인증된 사용자만 특정 작업을 수행할 수 있도록 합니다.

    • 사용자 정의 가능성
      Kubernetes는 고도로 사용자 정의가 가능하므로 사용자가 클러스터 작동 방식에 대한 자체 정책 및 구성을 정의할 수 있습니다.

워커 노드

워커 노드는 컨테이너화된 애플리케이션을 실행하는 시스템입니다. 애플리케이션을 실행하고 모니터링하며 애플리케이션에 서비스를 제공하는 작업은 다음 구성 요소에 의해 수행됩니다.

 

  1. 구성요소
    • 컨테이너 런타임(Docker, rkt 등)
    • Kubelet(API 서버와 통신하고 노드의 컨테이너를 관리)
    • 쿠버네티스 서비스 프록시(애플리케이션 구성 요소 간에 네트워크 트래픽을 로드밸런싱)
    워커 또는 미니언 노드라고도 하는 Kubernetes 워커 노드는 Kubernetes 클러스터에서 실제 애플리케이션 및 워크로드를 실행하는 작업자 시스템입니다. 이러한 노드는 마스터 노드로부터 명령을 받고 할당된 작업을 실행합니다. Kubernetes 클러스터에서 워커 노드는 애플리케이션 또는 서비스를 구성하는 컨테이너 실행을 담당합니다.

  2. 역할
    • Pod 실행
      작업자 노드의 기본 기능은 Kubernetes에서 배포 가능한 가장 작은 단위인 Pod를 실행하는 것입니다. 포드는 동일한 네트워크 네임스페이스를 공유하는 하나 이상의 컨테이너를 포함할 수 있으므로 localhost를 사용하여 서로 통신할 수 있습니다.

    • 컨테이너 관리
      작업자 노드는 필요에 따라 컨테이너 시작, 중지 및 다시 시작을 포함하여 컨테이너의 수명 주기 관리를 담당합니다.

    • 네트워킹
      작업자 노드는 IP 주소 할당 및 네트워크에 서비스 노출을 포함하여 실행 중인 컨테이너에서 들어오고 나가는 네트워크 트래픽을 처리합니다.

    • 상태 확인
      작업자 노드는 실행 중인 컨테이너에서 상태 확인을 수행하여 예상대로 실행되고 있는지 확인합니다. 컨테이너가 실패하면 작업자 노드는 다시 시작하려고 시도합니다.

    • 리소스 관리
      작업자 노드는 실행 중인 컨테이너에 대한 CPU, 메모리 및 스토리지를 포함한 리소스 할당을 관리합니다.
  3. 주요 기능
    • 확장성
      Kubernetes 작업자 노드는 수요에 따라 확장 또는 축소할 수 있으므로 애플리케이션을 효율적이고 비용 효율적으로 실행할 수 있습니다.

    • 유연성
      Kubernetes 작업자 노드는 물리적 서버, 가상 머신 및 클라우드 인스턴스를 비롯한 다양한 플랫폼에서 실행할 수 있습니다.

    • 내결함성
      Kubernetes 작업자 노드는 고가용성을 위해 구성할 수 있으므로 하나 이상의 노드가 실패하더라도 애플리케이션이 계속 실행될 수 있습니다.

    • 사용자 지정 가능성
      Kubernetes는 작업자 노드에 대한 광범위한 구성 옵션을 제공하여 사용자가 특정 워크로드에 대한 리소스 및 설정을 미세 조정할 수 있도록 합니다.

애드온

Kubernetes 애드온은 Kubernetes의 기능을 향상하고 컨테이너화된 애플리케이션을 보다 쉽게 ​​관리하고 배포할 수 있도록 하는 다양한 특징과 기능을 제공합니다. 마스터 노드와 워커  노드에서 설명한 구성 외에도 클러스터에서 원활히 기능을 수행하기 위해서는 다음과 같은 요소들이 추가로 필요합니다. 이외에도 다양한 애드온이 있지만, 다음에 기회가 되면 다루어 보도록 하겠습니다.

  1. 쿠버네티스 DNS 서버
  2. 대시보드
  3. 인그레스 컨트롤러
  4. 힙스터
  5. 컨테이너 네트워크 인터페이스

오늘은 쿠버네티스의 구조에 대해 알아보았습니다. 원래는 주요 단어들에 대해 설명하려 했으나, 내용이 생각보다 길어 다음에 따로 다루게 되었습니다. 조만간 이론 정리와 함께 실습 자료도 올릴 수 있도록 노력해보겠습니다.

반응형