GKE On-Prem 개요

GKE On-Prem은 온프레미스 데이터 센터에 Google Kubernetes Engine(GKE)을 제공하는 하이브리드 클라우드 소프트웨어입니다. GKE On-Prem을 사용하면 온프레미스 환경에서 Kubernetes 클러스터를 만들고 관리하고 업그레이드하며, 클러스터를 Google Cloud Console에 연결할 수 있습니다.

이 주제는 GKE On-Prem에 관한 기술적 개요입니다. 이 주제를 완료한 후 시스템 요구사항을 읽어보세요.

Kubernetes 알아보기

GKE On-Prem과 GKE는 컨테이너형 애플리케이션을 관리하기 위한 확장 가능한 오픈소스 플랫폼인 Kubernetes를 기반으로 구축되었습니다. Kubernetes는 컨테이너형 애플리케이션을 실행하는 노드(일명 '머신')의 집합인 클러스터를 조정합니다.

GKE On-Prem 가져오기

GKE On-Prem은 Anthos의 핵심 구성요소입니다. GKE On-Prem을 사용하려면 먼저 Google 영업팀에 연락하여 Anthos 구독을 구매합니다.

GKE On-Prem 준비

GKE On-Prem을 설치하려면 몇 가지 기본 요건 설정 작업을 수행해야 합니다. 다음 섹션에서는 이러한 작업을 간략하게 설명합니다.

VMware vSphere 가상화 환경

온프렘 환경에서 실행 중인 VMware vSphere 6.5 클러스터에 GKE On-Prem을 설치합니다. vSphere는 VMware의 서버 가상화 소프트웨어입니다.

또한 VMware vCenter 및 VMware ESXi도 조달합니다. ESXi는 데이터 센터의 물리적 호스트/서버 집합에 설치하는 유형 1 하이퍼바이저입니다. vCenter는 데이터 센터 서비스를 관리할 수 있는 vSphere의 웹 기반 사용자 인터페이스로 ESXi 호스트에서 중앙 뷰를 제공합니다.

특히 라이선스가 부여된 다음의 VMware 제품이 필요합니다.

  • 데이터 센터의 호스트 집합에 설치된 VMware ESXI 6.5(Enterprise Plus 라이선스 버전 포함)
  • 데이터 센터의 한 호스트에 설치된 VMware vCenter 6.5(표준 라이선스 버전 포함)

자세한 내용은 다음 VMware 리소스를 참조하세요.

부하 분산

레이어 4 부하 분산의 경우 통합 또는 수동의 두 가지 부하 분산 모드 중에서 선택할 수 있습니다. 통합 모드는 F5 BIG-IP(GKE On-Prem의 통합 부하 분산기)를 지원합니다. 수동 모드에서는 원하는 부하 분산기를 선택할 수 있습니다. 현재 GKE On-Prem에서는 다음 부하 분산기에 대해 문서화된 지침을 제공합니다.

GKE On-Prem을 설치하기 전에 데이터 센터에서 부하 분산기를 구성합니다. 설치하는 동안 통합 모드(F5 BIG-IP)를 사용할지 또는 수동 부하 분산 모드(원하는 부하 분산기)를 사용할지 선택합니다. 수동 부하 분산 모드를 사용하려면 노드에 고정 IP를 할당해야 합니다. 동적 호스트 구성 프로토콜(DHCP) 서버는 수동 부하 분산 모드로 사용할 수 없습니다.

인증

클라이언트를 클러스터에 대해 인증하고 컨테이너형 워크로드에 액세스해야 하는 경우 선택한 제공업체 또는 Active Directory Federated Services(ADFS)에서 OpenID Connect(OIDC)를 사용할 수 있습니다.

Google Cloud 프로젝트 준비

Google Cloud 프로젝트 준비에는 다음이 포함됩니다.

  • Google Cloud 프로젝트 생성 및 필요한 API 사용 설정
  • 서비스 계정에 ID 및 액세스 관리 역할 결합
  • HashiCorp Terraform 버전 11을 포함하여 필요한 명령줄 인터페이스(CLI) 도구 다운로드

자세한 내용은 다음 주제를 참조하세요.

관리 워크스테이션 만들기

관리 워크스테이션 만들기에는 다음 작업이 포함됩니다.

  • GKE On-Prem 번들 파일이 포함된 관리 워크스테이션 OVA 파일 다운로드
  • Terraform 구성(TF) 및 Terraform 변수(TFVARS) 파일을 복사한 다음 이를 사용 설정하여 vCenter 및 vSphere 반영
  • vSphere에서 Terraform을 사용하여 관리 워크스테이션 가상 머신(VM) 만들기

자세한 내용은 다음 주제를 참조하세요.

GKE On-Prem 설치 방법

다음은 설치 중에 수행하는 단계에 대한 개략적인 요약입니다. 설치 개요를 참조하세요.

  1. SSH로 관리 워크스테이션에 연결합니다.
  2. gkectl create-config를 실행하여 GKE On-Prem 구성 파일을 생성합니다. 구성 파일은 GKE On-Prem을 설치하기 위한 사양을 선언합니다.
  3. 클러스터 사양, OIDC 인증, 부하 분산, Stackdriver Logging, 등록할 Google Cloud 프로젝트 등 니즈와 환경에 적합한 값으로 구성 파일을 수정합니다.

  4. gkectl check-config를 실행하여 수정된 구성 파일을 설치에 사용할 수 있는지 확인합니다.

  5. gkectl prepare를 실행하여 GKE On-Prem의 OS 이미지를 vSphere로 이동하고 VM용 템플릿으로 표시합니다. 비공개 Docker 레지스트리를 구성하면 이 명령어는 GKE On-Prem의 컨테이너 이미지도 레지스트리로 푸시합니다.

  6. 구성 파일과 함께 gkectl create cluster --config를 실행하여 데이터 센터에 GKE On-Prem 클러스터를 만듭니다.

설치가 완료되면 vSphere에서 다음을 수행해야 합니다.

아키텍처

단일 사용자 제어 영역이 배포될 때 GKE On-Prem의 아키텍처를 설명하는 다이어그램
그림: 단일 사용자 제어 영역을 사용하는 GKE On-Prem 아키텍처 (확대하려면 클릭)

GKE On-Prem에는 기본적으로 세 개의 사용자 클러스터가 있습니다. 또한 두 개의 부가기능 VM과 하나의 관리 워크스테이션 VM이 있습니다. 이 모든 VM은 단일 vSphere 클러스터에서 실행됩니다.

관리 워크스테이션

관리 워크스테이션은 클러스터 관리자가 GKE On-Prem을 설치하고 상호 작용하는 vSphere의 VM입니다. 다른 항목을 만들기 전에 만드는 첫 번째 VM입니다.

클러스터 관리자는 Terraform을 사용하여 vSphere에 관리 워크스테이션을 만듭니다. 관리 워크스테이션에는 다음이 포함됩니다.

관리 워크스테이션을 만들려면 다음 세 가지 파일을 다운로드합니다.

  • 관리 워크스테이션의 Open Virtual Appliance(OVA) 파일. 관리 워크스테이션의 버전이 지정된 VM 이미지입니다. 이 파일을 vSphere로 가져와서 VM 템플릿으로 표시합니다. 그런 다음 Terraform은 템플릿을 사용하여 관리 워크스테이션을 vSphere 클러스터에 배포합니다.
  • Terraform 구성 파일(TF) 다음은 Terraform에서 클러스터에 관리 워크스테이션을 만드는 데 사용하는 안내입니다. 로컬 워크스테이션 또는 노트북에 이 파일을 복사합니다.
  • Terraform 구성 변수 파일(TFVARS) 이 파일의 변수를 사용자 환경의 값으로 채웁니다. TF 구성 파일은 TFVARS 파일의 변수를 참조합니다. 로컬 워크스테이션 또는 노트북에 이 파일을 복사합니다.

관리자 클러스터

관리자 클러스터는 GKE On-Prem의 기본 레이어입니다. 다음 GKE On-Prem 구성요소를 실행합니다.

  • 관리자 제어 영역: 관리자 제어 영역은 GKE On-Prem을 오가는 모든 gkectl 및 Kubernetes API 호출을 처리합니다. 관리자 제어 영역에서 vCenter API를 오가는 호출도 이루어집니다.
  • 사용자 제어 영역: 사용자 클러스터의 제어 영역입니다. API 요청을 클러스터 노드로 라우팅합니다. 각 클러스터에는 관리자 클러스터에서 실행되는 자체 제어 영역이 있습니다. 또한 사용자 제어 영역에서 vCenter API와 호출을 주고 받습니다.
  • 부가기능 VM: Grafana, Prometheus, Istio 구성요소, Stackdriver 등 관리자 클러스터의 부가기능을 실행하는 VM입니다.

사용자 제어 영역은 관리자 클러스터에서 관리합니다. 사용자 클러스터 자체가 아닌 관리자 클러스터의 노드에서 실행됩니다. 사용자 제어 영역을 관리하려면 관리자 클러스터가 다음을 수행해야 합니다.

  • 사용자 클러스터 제어 영역을 실행하는 머신을 관리합니다.
  • 제어 영역 구성요소를 생성, 업데이트, 삭제합니다.
  • Kubernetes API 서버를 사용자 클러스터에 노출합니다.
  • 클러스터 인증서를 관리합니다.

사용자 클러스터

사용자 클러스터는 컨테이너화된 워크로드와 서비스를 배포하고 실행하는 곳입니다.

부가기능 VM

GKE On-Prem은 Grafana, Prometheus, Istio 구성요소, Stackdriver 등 관리자 클러스터의 부가기능을 실행하기 위해 두 개의 VM을 만듭니다.

번들 정보

GKE On-Prem 번들은 GKE On-Prem 클러스터를 만들고 업그레이드하는 데 필요한 모든 구성요소를 포함하는 버전이 지정된 TGZ 보관 파일입니다.

번들에는 두 가지 유형이 있습니다.

전체 번들

전체 번들 gke-onprem-vsphere-[VERSION]-full.tgz는 관리자 워크스테이션에 포함되어 있습니다. /var/lib/gke/bundles에서 확인할 수 있습니다. 전체 번들은 GKE On-Prem을 처음 설치하는 데 사용되는 큰 파일로 다음을 포함합니다.

  • 모든 클러스터 구성요소의 컨테이너 이미지가 있는 TAR 파일
  • 이러한 클러스터 구성요소의 YAML 파일
  • GKE On-Prem의 노드 이미지

업그레이드 번들

업그레이드 번들 gke-onprem-vsphere-[VERSION].tgz클러스터 업그레이드용으로 제공됩니다. 클러스터를 업그레이드할 때마다 다운로드에서 버전 번들을 다운로드합니다. 업그레이드 번들에는 클러스터 구성요소를 업그레이드하는 데 사용되는 YAML 구성 파일만 있습니다.

CLI 도구

GKE On-Prem을 설치하면 다음 CLI 도구를 로컬 워크스테이션 또는 노트북에 다운로드할 수 있습니다.

  • govc
  • terraform
  • gkectl
  • kubectl(Google Cloud CLI에 포함됨)
  • gcloud(gcloud CLI에 포함됨)

govc

govc는 vSphere에 대한 CLI입니다. 관리 워크스테이션을 만들 때 govc를 사용하고 이를 이용하여 vSphere 클러스터를 관리할 수 있습니다.

terraform

terraform은 HashiCorp Terraform에 대한 CLI입니다. terraform을 사용하여 관리 워크스테이션을 만들고 업그레이드합니다.

gkectl

gkectl은 GKE On-Prem에 대한 CLI입니다. 참조 가이드를 확인하세요.

다음을 포함한 여러 클러스터 관리 작업에 gkectl을 사용합니다.

  • 클러스터 생성 및 관리
  • 문제 진단 및 문제 해결
  • 클러스터 로그 캡처 및 내보내기

kubectl

kubectl은 Kubernetes에 대한 CLI입니다. kubectl을 사용하여 Kubernetes 및 Kubernetes 클러스터와 상호작용하고 다음과 같은 작업을 수행합니다.

  • 클러스터에서 실행되는 컨테이너화된 워크로드 배포, 관리, 삭제
  • Kubernetes 리소스 관리, 편집, 삭제

gcloud

Google Cloud CLI는 Google Cloud에 대한 CLI입니다. 다음과 같은 다양한 용도로 gcloud CLI를 사용합니다.

  • Google Cloud 프로젝트에 대해 인증
  • 서비스 계정 및 비공개 키 만들기
  • ID 및 액세스 관리 역할을 계정에 결합

Google Cloud 콘솔에 클러스터 등록

GKE On-Prem 사용자 클러스터를 만들 때 Connect를 사용 설정하여 Google Cloud 콘솔에 자동으로 등록할 수 있습니다. Connect를 사용하면 동일한 Google Cloud 사용자 인터페이스에서 온프레미스 및 온클라우드 Kubernetes 클러스터를 확인하고 로그인할 수 있습니다.

Connect를 사용 설정하면 각 사용자 클러스터에 Connect Agent가 생성됩니다. Connect Agent는 Google Cloud가 실행되는 사용자 클러스터에서 암호화된 장기 연결을 설정하는 배포입니다.

Connect Agent의 컨테이너 이미지는 gcr.io에 있는 Container Registry 저장소에서 가져옵니다. 사용자 클러스터가 gcr.io에 연결하지 않거나 연결할 수 없는 경우 비공개 Docker 레지스트리를 사용하여 Google Cloud 콘솔에 연결해야 합니다.

버전 관리

버전 관리 작동 방식에 대해 자세히 알아보려면 버전을 참조하세요.

문제 해결 및 문제 진단

문제를 해결하려면 다음 주제를 참조하세요.

GKE On-Prem 문서의 자리표시자 값

GKE On-Prem 문서를 사용할 때 코드 블록에서 placeholder values를 클릭하여 값을 변경할 수 있습니다. 다음 블록에서 [YOUR_NAME]을 클릭하고 수정할 수 있는지 확인합니다.

Enter your name: [YOUR_NAME]

명령어를 복사하여 환경에서 실행하기 전에 자리표시자 값을 채우려면 이 방법이 유용할 수 있습니다.

다음 단계

다음으로 시스템 요구사항을 읽고 온프렘 환경을 준비하는 방법을 자세히 알아보세요.