Kubernetes 클러스터 개요

Google Distributed Cloud (GDC) 에어 갭은 Google Kubernetes Engine (GKE) Enterprise 버전을 사용하는 관리형 Kubernetes 서비스를 제공하므로 업계 표준 Kubernetes 방법론을 사용하여 컨테이너 워크로드를 배포하고 실행할 수 있습니다. GDC의 GKE는 연결이 끊긴 환경에 GKE Enterprise의 핵심 기능과 기능을 제공합니다. 시간이 지남에 따라 GDC의 GKE에서 추가 GKE Enterprise 기능을 사용할 수 있게 됩니다.

GDC의 GKE는 다음과 같은 엔터프라이즈 기능을 제공합니다.

  • 멀티 클러스터 수명 주기 관리
  • 완전히 지원되는 Kubernetes 배포
  • 비용 가시성
  • 멀티 팀 관리
  • GitOps 기반 구성 관리
  • 관리형 서비스 메시
  • 정책 제어

이러한 모든 기능은 GDC의 GKE에 기본으로 제공되며 관리 Kubernetes 서비스에서 생성된 클러스터와 함께 사용할 수 있습니다.

문서의 목적을 위해 GDC의 GKE 클러스터는 Kubernetes 클러스터 또는 클러스터라고 합니다.

GDC 클러스터 아키텍처

Kubernetes 클러스터는 서로 다른 장애 도메인과 격리 보장을 제공하기 위해 논리적으로 분리되어 있습니다. 물리적으로 분리된 경우도 있습니다. GDC의 각 조직에는 전용 Kubernetes 클러스터 세트가 있습니다. 각 조직의 워크로드 및 서비스에 사용할 수 있는 클러스터 유형은 다음과 같습니다.

  • 조직 인프라 클러스터: 조직의 컨트롤 플레인 및 데이터 영역 구성요소를 실행합니다. 또한 모든 비컨테이너 워크로드와 서비스가 배포되는 관리 API 서버를 호스팅합니다.
  • Kubernetes 클러스터: 조직의 컨테이너 기반 워크로드를 실행합니다. 워커 노드 수는 클러스터 사용률에 따라 다릅니다. 필요에 따라 확장할 수 있습니다. Kubernetes 클러스터는 Distributed Cloud에서 사용자 클러스터라고도 합니다.

인프라 운영자 (IO)가 조직을 만들면 GDC에서 조직 인프라 클러스터를 자동으로 생성합니다. 조직 인프라 클러스터의 초기 구성은 조직 생성 중에 설정됩니다.

관리자는 Kubernetes 클러스터를 만들고 관리합니다. 이 주제 섹션에서는 Kubernetes 클러스터 관리를 다룹니다. 컨테이너화된 Kubernetes 워크로드는 모두 Kubernetes 클러스터에서 실행됩니다. Kubernetes 클러스터에서 컨테이너를 만들고 관리하는 방법에 대한 자세한 내용은 컨테이너 워크로드 배포 섹션을 참고하세요.

Kubernetes 클러스터는 컨트롤 플레인과 노드라는 작업자 머신으로 구성됩니다. 컨트롤 플레인과 노드는 Kubernetes 클러스터 조정 시스템을 구성합니다. GDC의 GKE는 컨트롤 플레인과 모든 시스템 구성요소를 비롯해 클러스터의 전체 기본 인프라를 관리합니다. 컨테이너화된 워크로드를 실행하는 작업자 노드를 관리하는 것은 사용자의 책임입니다.

다음 다이어그램은 Kubernetes 클러스터의 아키텍처를 보여줍니다.

Kubernetes 클러스터는 컨트롤 플레인, 노드, 서비스로 구성됩니다.

제어 영역 정보

컨트롤 플레인은 Kubernetes API 서버, 스케줄러, 핵심 리소스 컨트롤러와 같은 프로세스를 실행합니다. GDC의 GKE는 클러스터 생성부터 삭제까지 컨트롤 플레인 수명 주기를 관리합니다. 여기에는 컨트롤 플레인에서 실행되는 Kubernetes 버전으로의 업그레이드가 포함됩니다. 업그레이드는 GDC가 자동으로 또는 자동 일정보다 빨리 업그레이드하기 위해 사용자 요청에 따라 수동으로 실시합니다.

제어 영역 및 Kubernetes API

컨트롤 플레인은 클러스터의 통합 엔드포인트입니다. Kubernetes API 호출을 통해 컨트롤 플레인과 상호작용합니다. 컨트롤 플레인은 Kubernetes API 서버 프로세스(kube-apiserver)를 실행하여 API 요청을 처리합니다. 다음 방법으로 Kubernetes API 호출을 수행할 수 있습니다.

  • 직접 호출: KRM
  • 간접 호출: kubectl과 같은 Kubernetes 명령줄 클라이언트 또는 GDC 콘솔

API 서버 프로세스는 클러스터의 모든 통신을 위한 허브입니다. 노드, 시스템 프로세스, 애플리케이션 컨트롤러와 같은 모든 내부 클러스터 구성요소는 API 서버의 클라이언트로 작동합니다.

API 요청은 클러스터에 있는 객체의 선택한 상태를 Kubernetes에 알려줍니다. Kubernetes는 그 상태를 계속 유지하려고 시도합니다. Kubernetes를 사용하면 API에서 명령적으로 또는 선언적으로 객체를 구성할 수 있습니다.

워커 노드 관리

컨트롤 플레인은 모든 클러스터 노드에서 실행되는 대상을 관리합니다. 컨트롤 플레인은 워크로드를 예약하고 워크로드 수명 주기, 확장, 업그레이드를 관리합니다. 컨트롤 플레인은 또한 이러한 워크로드의 네트워크 및 스토리지 리소스를 관리합니다. 컨트롤 플레인 및 노드는 Kubernetes API를 사용하여 서로 통신합니다.

노드 정보

노드는 컨테이너화된 애플리케이션과 기타 워크로드를 실행하는 작업자 머신입니다. 개별 머신은 GDC용 GKE가 생성하는 가상 머신 (VM)입니다. 컨트롤 플레인은 각 노드의 자체 보고 상태를 관리하고 업데이트를 수신합니다.

노드는 클러스터의 워크로드를 구성하는 컨테이너를 지원하는 데 필요한 서비스를 실행합니다. 여기에는 런타임 및 Kubernetes 노드 에이전트(kubelet)가 포함됩니다. 이 에이전트는 컨트롤 플레인과 통신하고, 해당 노드에 예약된 컨테이너를 시작하고 실행합니다.

GDC의 GKE는 또한 로그 수집 및 클러스터 내 네트워크 연결과 같은 기능을 제공하는 DaemonSet라고 하는 노드별 에이전트로 실행되는 여러 시스템 컨테이너를 실행합니다.

GDC 기반 GKE 제한사항

다음 GKE 기능은 GDC의 GKE에서 사용할 수 없는 제한사항입니다.

  • Connect 게이트웨이
  • 멀티 클라우드 클러스터 연결
  • Binary Authorization
  • 멀티 클러스터 데이터 인바운드 전송