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 설치 방법
다음은 설치 중에 수행하는 단계에 대한 개략적인 요약입니다. 설치 개요를 참조하세요.
- SSH로 관리 워크스테이션에 연결합니다.
gkectl create-config
를 실행하여 GKE On-Prem 구성 파일을 생성합니다. 구성 파일은 GKE On-Prem을 설치하기 위한 사양을 선언합니다.클러스터 사양, OIDC 인증, 부하 분산, Stackdriver Logging, 등록할 Google Cloud 프로젝트 등 니즈와 환경에 적합한 값으로 구성 파일을 수정합니다.
gkectl check-config
를 실행하여 수정된 구성 파일을 설치에 사용할 수 있는지 확인합니다.gkectl prepare
를 실행하여 GKE On-Prem의 OS 이미지를 vSphere로 이동하고 VM용 템플릿으로 표시합니다. 비공개 Docker 레지스트리를 구성하면 이 명령어는 GKE On-Prem의 컨테이너 이미지도 레지스트리로 푸시합니다.구성 파일과 함께
gkectl create cluster --config
를 실행하여 데이터 센터에 GKE On-Prem 클러스터를 만듭니다.
설치가 완료되면 vSphere에서 다음을 수행해야 합니다.
아키텍처
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 콘솔에 연결해야 합니다.
버전 관리
버전 관리 작동 방식에 대해 자세히 알아보려면 버전을 참조하세요.
문제 해결 및 문제 진단
문제를 해결하려면 다음 주제를 참조하세요.
- 특정 주제에 대한 문제 해결 도움말을 보려면 문제 해결을 참조하세요.
gkectl
을 사용하여 클러스터 문제를 진단하려면 클러스터 문제 진단을 참조하세요.- 클러스터 노드 문제를 진단하려면 디버그 도구 상자를 사용하여 노드 문제 디버깅을 참조하세요.
- Google의 도움을 받으려면 지원 받기를 참조하세요.
GKE On-Prem 문서의 자리표시자 값
GKE On-Prem 문서를 사용할 때 코드 블록에서 placeholder values를 클릭하여 값을 변경할 수 있습니다. 다음 블록에서 [YOUR_NAME]을 클릭하고 수정할 수 있는지 확인합니다.
Enter your name: [YOUR_NAME]
명령어를 복사하여 환경에서 실행하기 전에 자리표시자 값을 채우려면 이 방법이 유용할 수 있습니다.
다음 단계
다음으로 시스템 요구사항을 읽고 온프렘 환경을 준비하는 방법을 자세히 알아보세요.