이 문서에서는 Google Distributed Cloud (GDC) 오프라인에서 사용할 수 있는 Kubernetes 클러스터 옵션과 기능을 설명합니다. Kubernetes 클러스터는 Google Kubernetes Engine (GKE)을 통해 관리형 Kubernetes 서비스를 제공하므로 업계 표준 Kubernetes 방법론을 사용하여 컨테이너 워크로드를 배포하고 실행할 수 있습니다.
이 문서는 플랫폼 관리자 그룹의 IT 관리자, 애플리케이션 운영자 그룹의 애플리케이션 개발자와 같이 조직 내에서 컨테이너 워크로드를 관리하는 사용자를 대상으로 합니다. 자세한 내용은 GDC 오프라인 문서의 대상을 참고하세요.
연결이 끊긴 환경의 GKE
GDC의 GKE는 연결이 끊긴 환경에 GKE의 핵심 기능과 기능을 제공하는 관리형 Kubernetes 서비스입니다. 문서의 목적을 위해 GDC의 GKE에서 관리하는 클러스터를 Kubernetes 클러스터라고 합니다. Kubernetes 개념에 대한 자세한 내용은 Kubernetes 학습 시작을 참고하세요.
GDC의 GKE를 사용하면 공용 Google Cloud에서 GKE를 사용하는 것과 유사하게 연결이 끊긴 환경에서 컨테이너 워크로드를 만들고 관리할 수 있습니다.
다음 표에서는 GDC와 Google Cloud의 클러스터를 비교합니다.
| 기능 | 설명 | GDC 기반 GKE | Google Cloud용 GKE |
|---|---|---|---|
| 완전히 연결 해제됨 | 인터넷에 연결되지 않은 환경에서 작동할 수 있습니다. | 예 | 아니요 |
| 백업 솔루션 | 데이터 보호를 보장하고 장애, 오류 또는 사이버 공격으로부터 복구할 수 있도록 클러스터의 데이터 및 구성을 복사하는 서비스입니다. | Backup for 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 클러스터의 이점
GKE on GDC는 다음과 같은 Kubernetes 클러스터의 주요 이점을 제공합니다.
- 멀티 클러스터 수명 주기 관리: 컨테이너 워크로드의 다양한 호스팅 인스턴스를 위해 GDC에 여러 클러스터를 동시에 배포합니다.
- 완전히 지원되는 Kubernetes 배포: 최신 표준 Kubernetes 기능이 번들로 제공되는 클러스터를 만듭니다.
- 비용 가시성: 실시간 사용량과 통계를 모니터링하여 Kubernetes 비용을 지속적으로 모니터링할 수 있습니다.
- 다중 팀 관리: 유연한 관리 경계를 위해 여러 사용자 그룹에 Kubernetes 클러스터 액세스 권한을 부여합니다.
- 자동화된 Kubernetes 워크플로: 자동 노드 프로비저닝과 수평형 포드 자동 확장을 통해 컨테이너 워크로드를 원활하게 관리할 수 있습니다.
이러한 기능은 모두 GDC의 GKE에 기본으로 제공되며 관리 Kubernetes 서비스에서 만든 클러스터와 함께 사용할 수 있습니다.
GDC 클러스터 아키텍처
Kubernetes 클러스터는 서로 다른 장애 도메인과 격리 보장을 제공하기 위해 논리적으로 분리되어 있습니다. 물리적으로 분리된 경우도 있습니다.
Kubernetes 클러스터를 공유 클러스터 또는 표준 클러스터로 구성합니다. 공유 클러스터는 여러 프로젝트에 걸쳐 있습니다. 표준 클러스터는 단일 프로젝트로 범위가 지정됩니다. 자세한 내용은 Kubernetes 클러스터 구성을 참고하세요.
Kubernetes 클러스터는 컨트롤 플레인과 노드라는 작업자 머신으로 구성됩니다. 컨트롤 플레인과 노드는 Kubernetes 클러스터 조정 시스템을 구성합니다. GDC의 GKE는 컨트롤 플레인 및 모든 시스템 구성요소를 포함하여 클러스터의 전체 기본 인프라를 관리합니다. 컨테이너화된 워크로드를 실행하는 작업자 노드를 관리하는 것은 사용자의 책임입니다.
다음 다이어그램은 Kubernetes 클러스터의 아키텍처를 보여줍니다.

이 다이어그램은 다음 구성요소가 있는 Kubernetes 클러스터를 보여줍니다.
- 컨트롤 플레인: API 서버와 스토리지, 기본 포드 예약과 같은 사전 정의된 서비스가 포함됩니다.
- 컨테이너 워크로드를 실행하는 워커 노드
- GDC의 GKE 관리 서비스에서 제공하는 VPC 네트워킹 및 부하 분산과 같은 GDC 서비스
컨트롤 플레인 정보
컨트롤 플레인은 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에서 사용할 수 없는 제한사항입니다.
- 자동화된 클러스터 관리
- 자동 노드 복구: 노드가 비정상 상태가 되면 자동으로 노드를 수정하는 클러스터 모니터링으로 수동 개입의 필요성이 줄어듭니다.
- 자동 클러스터 업그레이드: 클러스터가 지원되고 안전한 버전을 실행하도록 클러스터의 컨트롤 플레인과 워커 노드의 Kubernetes 버전을 자동으로 업그레이드합니다.
- 클러스터 자동 확장: 워크로드 요구사항에 따라 노드를 추가하거나 삭제하여 클러스터 크기를 자동으로 조정합니다.
- GKE Autopilot: 인프라 관리를 처리하는 완전 관리형 작업 모드입니다.
- 수직형 포드 자동 확장: 이전 사용량을 기반으로 클러스터의 포드에 대한 CPU 및 메모리 요청과 한도를 자동으로 조정합니다.
- 멀티 클라우드
- 멀티 클라우드 클러스터 연결: 다른 클라우드 환경에서 클러스터를 만들고Google Cloud 콘솔에서 관리합니다.
- Connect 게이트웨이: 인증을 위해 Google Cloud ID를 사용하여 다른 클라우드 제공업체의 클러스터에 연결합니다.
- 멀티 클러스터 인그레스: 클러스터 간에 공유 부하 분산 리소스를 배포합니다.
- 작업
- 멀티 영역 리소스 관리: 클러스터와 컨테이너가 리전 또는 전역 리소스로 여러 영역에 걸쳐 있습니다.
- Windows 컨테이너 지원: Windows 호스트에서 애플리케이션을 실행하기 위한 격리된 환경입니다.