GDC의 Kubernetes 클러스터

이 문서에서는 Google Distributed Cloud (GDC) 에어 갭에서 사용할 수 있는 Kubernetes 클러스터 옵션 및 기능을 설명합니다. Kubernetes 클러스터는 업계 표준 Kubernetes 방법론을 사용하여 컨테이너 워크로드를 배포하고 실행할 수 있는 Google Kubernetes Engine (GKE) 을 통해 관리형 Kubernetes 서비스를 제공합니다.

이 문서는 플랫폼 관리자 그룹의 IT 관리자 및 조직 내에서 컨테이너 워크로드를 관리하는 애플리케이션 운영자 그룹의 애플리케이션 개발자와 같은 사용자를 대상으로 합니다. 자세한 내용은 GDC 에어 갭 문서의 대상층을 참고하세요.

연결이 끊긴 환경의 GKE

GDC 기반 GKE 는 GKE의 핵심 기능과 기능을 연결이 끊긴 환경으로 가져오는 관리형 Kubernetes 서비스입니다. 문서의 목적을 위해 GDC 기반 GKE에서 관리하는 클러스터를 Kubernetes 클러스터 라고 합니다. Kubernetes 개념에 대한 자세한 내용은 Kubernetes 학습 시작을 참고하세요.

GDC 기반 GKE를 사용하면 공개 GKE를 사용하는 것과 마찬가지로 연결이 끊긴 환경에서 컨테이너 워크로드를 만들고 관리할 수 있습니다. Google Cloud

다음 표에서는 GDC의 클러스터와 Google Cloud다음을 비교합니다.

기능 설명 GDC 기반 GKE 용 GKE Google Cloud
완전한 분리 인터넷에 연결되지 않은 환경에서 작동할 수 있습니다. 아니요
백업 솔루션 데이터 보호를 보장하고 실패, 오류 또는 사이버 공격으로부터 복구를 사용 설정하기 위해 클러스터의 데이터 및 구성 사본을 만드는 서비스입니다. GDC 백업 Backup for GKE
통합 로깅 및 모니터링 로그 수집 및 분석과 주요 실적 지표 모니터링을 결합하여 클러스터 동작을 포괄적으로 파악하는 서비스입니다. Prometheus, Grafana, Loki Cloud Logging 및 Cloud Monitoring
관리형 Container Registry 컨테이너 이미지를 호스팅하고 구성하며 이미지의 인프라, 가용성, 보안을 처리하는 서비스입니다. 관리형 Harbor 서비스 Artifact Registry
컨테이너 격리 컨테이너 애플리케이션과 종속 항목을 서로 그리고 호스트 시스템과 분리하고 독립적으로 유지하는 기능입니다.
GPU 및 TPU 지원 향상된 처리 기능을 지원하는 고성능 컴퓨팅 단위입니다. GPU만 GPU 및 TPU
수평형 포드 자동 확장 CPU 또는 메모리 사용량과 같은 관찰된 측정항목을 기반으로 배포 또는 기타 워크로드의 포드 복제본 수를 자동으로 조정합니다.
Linux 컨테이너 Linux 호스트에서 애플리케이션을 실행하기 위한 격리된 환경입니다.
클러스터용 UI 클러스터를 관리하고 모니터링하는 사용자 친화적인 시각적 방법을 제공하는 그래픽 인터페이스입니다. 공유 클러스터
클러스터 리소스용 UI 클러스터의 컨테이너 워크로드를 관리하고 모니터링하는 사용자 친화적인 시각적 방법을 제공하는 그래픽 인터페이스입니다. 보기 전용

공개에서 사용할 수 있는 GKE 및 전체 기능 세트 Google Cloud에 대한 자세한 내용은 GKE 문서 살펴보기를 참고하세요.

Kubernetes 클러스터의 이점

GDC 기반 GKE 는 다음과 같은 Kubernetes 클러스터의 주요 이점을 제공합니다.

  • 멀티 클러스터 수명 주기 관리: 컨테이너 워크로드의 다양한 호스팅된 인스턴스를 위해 GDC에 여러 클러스터를 동시에 배포합니다.
  • 완전히 지원되는 Kubernetes 배포: 최신 표준 Kubernetes 기능이 번들로 제공되는 클러스터를 만듭니다.
  • 비용 가시성: 실시간 사용량 및 통계를 모니터링하여 Kubernetes 비용을 지속적으로 모니터링할 수 있습니다.
  • 멀티팀 관리: 유연한 관리 경계를 위해 여러 그룹의 사용자에게 Kubernetes 클러스터에 대한 액세스 권한을 부여합니다.
  • 자동화된 Kubernetes 워크플로: 자동 노드 프로비저닝 및 수평형 포드 자동 확장을 사용하여 컨테이너 워크로드를 원활하게 관리합니다.

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

GDC 클러스터 아키텍처

Kubernetes 클러스터는 서로 논리적으로 분리되어 다양한 실패 도메인과 격리 보장을 제공합니다. 경우에 따라 물리적으로 분리되기도 합니다.

Kubernetes 클러스터를 공유 클러스터 또는 표준 클러스터로 구성합니다. 공유 클러스터 는 여러 프로젝트에 걸쳐 있습니다. 표준 클러스터 는 단일 프로젝트로 범위가 지정됩니다. 자세한 내용은 Kubernetes 클러스터 구성을 참고하세요.

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

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

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

이 다이어그램은 다음 구성요소가 있는 Kubernetes 클러스터를 보여줍니다.

컨트롤 플레인 정보

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

제어 영역 및 Kubernetes API

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

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

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

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

작업자 노드 관리

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

노드 정보

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

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

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

노드는 동일한 구성과 특성을 공유하는 클러스터 내 노드 집합인 노드 풀 로 그룹화됩니다. 노드 풀에서 단일 노드를 구성할 수는 없습니다.

커스텀 노드 풀은 추가 메모리 또는 로컬 디스크 공간 등 다른 것보다 더 많은 리소스가 필요한 포드를 예약할 때 유용합니다. 포드 예약을 더 세부적으로 제어해야 할 경우에는 노드 taint를 사용할 수 있습니다.

자세한 내용은 노드 풀 관리를 참고하세요.

Kubernetes 클러스터 구성

GDC 기반 GKE 서비스에서는 다음과 같은 클러스터 구성을 사용하여 조직의 컨테이너 워크로드를 관리할 수 있습니다.

  • 공유 클러스터: 여러 프로젝트에 걸쳐 있고 단일 프로젝트에서 관리하지 않지만 프로젝트에 연결된 조직 범위의 Kubernetes 클러스터입니다.
  • 표준 클러스터: 프로젝트 내에서 클러스터 리소스를 관리하고 여러 프로젝트에 걸쳐 있을 수 없는 프로젝트 범위의 Kubernetes 클러스터입니다.

컨테이너 워크로드 관리에 가장 적합한 클러스터를 선택할 수 있습니다. 자세한 내용은 Kubernetes 클러스터 구성을 참고하세요.

클러스터의 GPU 워크로드

GDC는 Kubernetes 클러스터에 NVIDIA GPU 지원을 제공하며 GPU 기기를 사용자 워크로드로 실행합니다. 예를 들어 GPU 환경에서 인공지능 (AI) 및 머신러닝 (ML) 노트북을 실행하는 것이 좋습니다. GPU 기기를 프로비저닝하여 GPU 기기를 지원하도록 클러스터를 구성해야 합니다. GDC의 Kubernetes 클러스터에서 지원되는 머신 유형 목록은 클러스터 노드 머신을 참고하세요.

GPU는 정적으로 할당됩니다. 처음 4개의 GPU는 항상 사전 학습된 AI 및 ML API와 같은 워크로드에 전용으로 사용됩니다. 이러한 GPU는 Kubernetes 클러스터에서 실행되지 않습니다. 나머지 GPU는 Kubernetes 클러스터에서 사용할 수 있습니다. AI 및 ML 노트북은 Kubernetes 클러스터에서 실행됩니다.

AI 및 ML API와 같은 구성요소가 클러스터에서 실행되도록 올바른 클러스터 유형에 GPU 머신을 할당해야 합니다. 자세한 내용은 다음 항목을 참고하세요. 공유 클러스터 만들기 또는 표준 클러스터 만들기.

GDC 기반 GKE의 제한사항

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

다음 단계