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 번들은 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 설치 방법
다음은 설치 중 수행 단계를 요약한 것입니다.
- 관리 워크스테이션에 SSH를 통해 연결합니다.
gkectl create-config
를 실행하여 GKE On-Prem 구성 파일을 생성합니다. 구성 파일은 GKE On-Prem을 설치하기 위한 사양을 선언합니다. 필요에 맞게 변경합니다.gkectl check-config
를 실행하여 수정된 구성 파일을 설치에 사용할 수 있는지 확인합니다.gkectl prepare
를 실행하여 GKE On-Prem의 OS 이미지를 vSphere로 이동하고 VM용 템플릿으로 표시합니다. 비공개 Docker 레지스트리를 구성하면 이 명령어는 GKE On-Prem의 컨테이너 이미지도 레지스트리로 푸시합니다.gkectl create clusters --config
를 실행하여 구성 파일을 전달하여 GKE On-Prem을 선언적으로 설치합니다.
설치가 완료되면 vSphere에서 다음을 수행해야 합니다.
아키텍처
그림: 단일 사용자 제어 영역을 사용하는 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 콘솔에 연결해야 합니다.
버전 관리
버전 관리 작동 방식에 대해 자세히 알아보려면 버전을 참조하세요.