GKE On-Prem 개요

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

Kubernetes 알아보기

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

GKE On-Prem 가져오기

GKE On-Prem은 Anthos의 핵심 구성요소로 포함됩니다.

GKE On-Prem 준비

온프렘 환경의 하드웨어에서 실행되는 VMware vSphere 6.5 클러스터에 GKE On-Prem을 설치합니다. 레이어 4 부하 분산의 경우 F5 BIG-IP(GKE On-Prem의 통합 부하 분산기)를 사용하거나 다른 L4 부하 분산기를 구성할 수 있습니다.

준비에는 Google Cloud 프로젝트 설정 및 Terraform 버전 11을 포함하여 필요한 명령줄 인터페이스(CLI) 도구 다운로드가 포함됩니다. 또한 Terraform을 사용하여 vSphere에서 관리 워크스테이션 가상 머신(VM)을 만들 수도 있습니다.

관리 워크스테이션 정보

관리 워크스테이션은 클러스터 관리자가 GKE On-Prem을 설치하고 상호작용하는 vSphere VM입니다.

클러스터 관리자는 Terraform을 사용하여 vSphere에 관리 워크스테이션을 만듭니다. 관리 워크스테이션을 만들려면 다음 세 가지 파일을 다운로드합니다.

  • Open Virtual Appliance(OVA) 파일. Terraform용 'VM 템플릿'을 제공하는 버전이 지정된 VM 이미지입니다.
  • Terraform 구성 파일(TF)
  • Terraform 구성 변수 파일(TFVARS)

관리 워크스테이션에는 다음이 포함됩니다.

  • 번들 파일
  • GKE On-Prem, vSphere, Google Cloud와 상호작용하는 CLI 도구

번들 정보

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 파일만 있습니다.

GKE On-Prem 설치 방법

다음은 설치 중 수행 단계를 요약한 것입니다.

  1. 관리 워크스테이션에 SSH를 통해 연결합니다.
  2. gkectl create-config를 실행하여 GKE On-Prem 구성 파일을 생성합니다. 구성 파일은 GKE On-Prem을 설치하기 위한 사양을 선언합니다. 필요에 맞게 변경합니다.
  3. gkectl check-config를 실행하여 수정된 구성 파일을 설치에 사용할 수 있는지 확인합니다.
  4. gkectl prepare를 실행하여 GKE On-Prem의 OS 이미지를 vSphere로 이동하고 VM용 템플릿으로 표시합니다. 비공개 Docker 레지스트리를 구성하면 이 명령어는 GKE On-Prem의 컨테이너 이미지도 레지스트리로 푸시합니다.
  5. gkectl create clusters --config를 실행하여 구성 파일을 전달하여 GKE On-Prem을 선언적으로 설치합니다.

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

아키텍처

GKE On-Prem의 아키텍처를 설명하는 다이어그램 그림: 단일 사용자 제어 영역을 사용하는 GKE On-Prem 아키텍처

GKE On-Prem에는 관리자 클러스터와 사용자 클러스터가 있습니다.

관리자 클러스터

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

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

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

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

사용자 클러스터

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

CLI 도구

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

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

govc

govc는 vSphere에 대한 CLI입니다. 관리 워크스테이션을 만들 때 govc를 사용합니다.

terraform

terraform은 HashiCorp Terraform에 대한 CLI입니다. terraform을 사용하여 관리 워크스테이션을 만듭니다.

gkectl

gkectl은 GKE On-Prem에 대한 기본 CLI입니다. 다음을 포함한 여러 클러스터 관리 작업에 gkectl을 사용합니다.

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

kubectl

kubectl은 Kubernetes에 대한 CLI입니다. kubectl을 사용하여 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 콘솔에 연결해야 합니다.

버전 관리

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