설치 준비

이 페이지에서는 환경에 GKE On-Prem을 설치하기 전에 수행해야 하는 몇 가지 단계를 안내합니다.

시작하기 전에

다음 주제를 검토합니다.

제한사항

제한사항 설명
클러스터와 노드의 최대 및 최소 한도

할당량 및 한도를 참조하세요. 이러한 한도는 환경 성능에 따라 달라질 수 있습니다.

사용자 클러스터 이름의 고유성

동일한 Google Cloud 프로젝트에 등록된 모든 사용자 클러스터에는 고유한 이름이 있어야 합니다.

vCenter 또는 vSphere 데이터 센터 두 개 이상에 배포할 수 없음

현재 관리자 클러스터와 연관된 사용자 클러스터 집합을 단일 vCenter 또는 vSphere 데이터 센터에만 배포할 수 있습니다. 동일한 관리자 및 사용자 클러스터를 둘 이상의 vCenter 또는 vSphere 데이터 센터에 배포할 수 없습니다.

생성 후 클러스터 구성을 선언적으로 변경할 수 없음 추가 클러스터 만들기기존 클러스터 크기 조절은 가능하지만 구성 파일을 통해 기존 클러스터를 변경할 수 없습니다.

Google Cloud 프로젝트 만들기

아직 프로젝트가 없는 경우 Google Cloud 프로젝트를 만드세요. GKE On-Prem를 실행하려면 프로젝트가 필요합니다.

필수 명령줄 인터페이스 도구 설치

  • gcloud 명령줄 인터페이스(CLI)가 포함된 Google Cloud CLI를 Google Cloud에 설치합니다.

  • VMware vSphere에 CLI인 govc를 설치합니다.

  • terraform CLI가 포함된 Terraform 0.11을 설치합니다. Terraform의 설치 지침에 따라 설치를 확인하고 PATH 변수를 설정합니다.

노트북/워크스테이션에서 프록시/방화벽을 사용하도록 Google Cloud CLI 구성

노트북이나 워크스테이션에서 인터넷에 연결하도록 프록시를 사용하는 경우 gcloudgsutil 명령어를 실행할 수 있도록 프록시용 Google Cloud CLI를 구성해야 할 수 있습니다. 자세한 내용은 gcloud CLI를 프록시/방화벽 뒤에서 사용할 수 있도록 구성을 참조하세요.

gcloud에서 Google Cloud에 액세스하도록 승인

gcloud CLI를 설치한 후 계정 사용자 인증 정보를 사용하여 Google Cloud에 로그인합니다.

gcloud auth login

기본 Google Cloud 프로젝트 설정

기본 Google Cloud를 설정하면 모든 gcloud CLI 명령어가 해당 프로젝트에 대해 실행되므로 각 명령어에 프로젝트를 지정할 필요가 없습니다. 기본 프로젝트를 설정하려면 다음 명령어를 실행합니다.

gcloud config set project [PROJECT_ID]

여기서 [PROJECT_ID]프로젝트 ID로 바꿉니다. Google Cloud 콘솔에서 또는 gcloud config get-value project를 실행하여 프로젝트 ID를 찾을 수 있습니다.

Google Cloud 서비스 계정 만들기

GKE On-Prem을 처음 설치하기 전에 gcloud를 사용하여 4개의 Google Cloud 서비스 계정을 만듭니다. GKE On-Prem은 이러한 서비스 계정을 사용하여 사용자를 대신하여 작업을 완료합니다. 다음 섹션에서는 각 계정의 목적을 설명합니다.

액세스 서비스 계정

이 서비스 계정을 사용하여 Cloud Storage에서 GKE On-Prem의 바이너리를 다운로드합니다. Google이 허용하는 유일한 서비스 계정입니다.

다음 명령어를 실행하여 access-service-account를 만듭니다.

gcloud iam service-accounts create access-service-account

등록 서비스 계정

Connect는 이 서비스 계정을 사용하여 GKE On-Prem 클러스터를 Google Cloud Console에 등록합니다.

다음 명령어를 실행하여 register-service-account를 만듭니다.

gcloud iam service-accounts create register-service-account

연결 서비스 계정

Connect는 이 서비스 계정을 사용하여 GKE On-Prem 클러스터와 Google Cloud 간의 연결을 유지합니다.

다음 명령어를 실행하여 connect-service-account를 만듭니다.

gcloud iam service-accounts create connect-service-account

Google Cloud의 작업 제품군 서비스 계정

이 서비스 계정을 사용하면 GKE On-Prem에서 로깅 및 모니터링 데이터를 Google Cloud의 작업 제품군에 쓸 수 있습니다.

다음 명령어를 실행하여 stackdriver-service-account를 만듭니다.

gcloud iam service-accounts create stackdriver-service-account

프로젝트 및 계정 허용 목록에 추가

Anthos를 구매하면 Google에서 GKE On-Prem 및 Connect에 대한 액세스 권한을 부여하기 위해 다음을 허용 목록에 추가합니다.

  • Google Cloud 프로젝트
  • Google 계정 및 팀원의 개별 Google 계정
  • 액세스 서비스 계정

다른 프로젝트 또는 서비스 계정을 사용하거나 추가 사용자를 사용하려면 Google Cloud 지원팀이나 테크니컬 어카운트 매니저가 도움을 줄 수 있습니다. Google Cloud 콘솔 또는 Google Cloud Support Center를 통해 지원 기록을 엽니다.

프로젝트에 필요한 API 사용 설정

Google Cloud 프로젝트에서 다음 API를 사용 설정해야 합니다.

  • cloudresourcemanager.googleapis.com
  • container.googleapis.com
  • gkeconnect.googleapis.com
  • gkehub.googleapis.com
  • serviceusage.googleapis.com
  • stackdriver.googleapis.com
  • monitoring.googleapis.com
  • logging.googleapis.com

이러한 API를 사용 설정하려면 다음 명령어를 실행합니다.

gcloud services enable \
cloudresourcemanager.googleapis.com \
container.googleapis.com \
gkeconnect.googleapis.com \
gkehub.googleapis.com \
serviceusage.googleapis.com \
stackdriver.googleapis.com \
monitoring.googleapis.com \
logging.googleapis.com

서비스 계정에 ID 및 액세스 관리 역할 할당

IAM은 Google Cloud APIs를 호출할 수 있는 권한을 계정에 부여합니다. 이러한 서비스 계정에 전용 IAM 역할을 할당하여 권한을 격리합니다.

서비스 계정의 이메일 주소 나열

먼저 Google Cloud 프로젝트의 서비스 계정을 나열합니다.

gcloud iam service-accounts list

이름이 my-gcp-project인 Google Cloud 프로젝트에서 이 명령어의 출력은 다음과 같이 표시됩니다.

gcloud iam service-accounts list
NAME                                    EMAIL
                                        access-service-account@my-gcp-project.iam.gserviceaccount.com
                                        register-service-account@my-gcp-project.iam.gserviceaccount.com
                                        connect-service-account@my-gcp-project.iam.gserviceaccount.com
                                        stackdriver-service-account@my-gcp-project.iam.gserviceaccount.com

각 계정의 이메일 주소를 기록해 둡니다. 다음 각 섹션에 관련 계정의 이메일 계정을 제공합니다.

등록 서비스 계정

등록 서비스 계정에 gkehub.adminserviceuseage.serviceUsageViewer 역할을 부여합니다.

gcloud projects add-iam-policy-binding [PROJECT_ID] \
--member "serviceAccount:[REGISTER_SERVICE_ACCOUNT_EMAIL]" \
--role "roles/gkehub.admin"
gcloud projects add-iam-policy-binding [PROJECT_ID] \
--member "serviceAccount:[REGISTER_SERVICE_ACCOUNT_EMAIL]" \
--role "roles/serviceusage.serviceUsageViewer"

연결 서비스 계정

연결 서비스 계정에 gkehub.connect 역할을 부여합니다.

gcloud projects add-iam-policy-binding [PROJECT_ID] \
--member "serviceAccount:[CONNECT_SERVICE_ACCOUNT_EMAIL]" \
--role "roles/gkehub.connect"

Google Cloud의 작업 제품군 서비스 계정

Google Cloud의 작업 제품군 서비스 계정에 stackdriver.resourceMetadata.writer, logging.logWriter, monitoring.metricWriter 역할을 부여합니다.

gcloud projects add-iam-policy-binding [PROJECT_ID] \
--member "serviceAccount:[STACKDRIVER_SERVICE_ACCOUNT_EMAIL]" \
--role "roles/stackdriver.resourceMetadata.writer"
gcloud projects add-iam-policy-binding [PROJECT_ID] \
--member "serviceAccount:[STACKDRIVER_SERVICE_ACCOUNT_EMAIL]" \
--role "roles/logging.logWriter"
gcloud projects add-iam-policy-binding [PROJECT_ID] \
--member "serviceAccount:[STACKDRIVER_SERVICE_ACCOUNT_EMAIL]" \
--role "roles/monitoring.metricWriter"

Logging 및 Monitoring 구성

Stackdriver Logging 및 Stackdriver Monitoring은 GKE On-Prem에 기본적으로 사용 설정됩니다.

프록시 허용 목록에 주소 추가

조직에서 HTTP 프록시를 통과하기 위해 인터넷 액세스가 필요한 경우 프록시 허용 목록에 다음 주소를 추가해야 합니다.

다음 섹션에서는 주소에 대해 자세히 설명합니다.

Google 주소

GKE On-Prem은 여러 Google API를 사용하여 클러스터를 만들고 관리합니다. 프록시 허용 목록에 다음 Google 주소를 추가합니다.

주소 목적
accounts.google.com Google Cloud 프로젝트에 액세스하기 위해 Google 계정에 대한 액세스를 허용합니다.
cloudresourcemanager.googleapis.com Google Cloud 리소스 컨테이너의 메타 데이터를 만들고, 읽고, 업데이트합니다.
console.cloud.google.com Google Cloud Console에 대한 액세스를 허용합니다.
container.googleapis.com Google Kubernetes Engine API에 대한 액세스를 허용합니다.
gcr.io GKE On-Prem 저장소를 포함한 Container Registry 저장소에 대한 액세스를 허용합니다.
gkeconnect.googleapis.com Google Cloud와 장기적으로 암호화된 연결을 설정하기 위해 Connect에 대한 액세스를 허용합니다.
gkehub.googleapis.com Google Cloud 프로젝트에 클러스터를 등록하기 위해 Google Cloud Console에 대한 액세스를 허용합니다.
logging.googleapis.com 클러스터 측정 항목 로깅 기능을 위해 Cloud Logging의 API에 대한 액세스를 허용합니다.
monitoring.googleapis.com 클러스터 모니터링 기능을 위한 Cloud Monitoring의 API에 대한 액세스를 허용합니다.
oauth2.googleapis.com 인증을 위해 Google의 OAuth2 API에 대한 액세스를 허용합니다.
serviceusage.googleapis.com
storage.googleapis.co.kr Cloud Storage 버킷에 대한 액세스를 허용합니다.
googleapis.com Google Cloud 제품별 엔드포인트에 대한 액세스를 허용합니다.

HashiCorp 주소

HashiCorp Terraform 버전 0.11을 사용하여 vSphere에서 관리자 워크스테이션 VM을 만듭니다. 프록시 또는 방화벽이 있는 환경에서 Terraform을 실행하려면 다음 HashiCorp 주소를 허용 목록에 추가해야 합니다.

주소 목적
checkpoint-api.hashicorp.com HashiCorp 버전에 액세스를 허용하고 다양한 오픈소스 및 독점 제품에 대한 정보를 제공합니다.
releases.hashicorp.com HashiCorp의 바이너리에 액세스할 수 있습니다.

VMware, 부하 분산기, 기타 주소

마지막으로 프록시 허용 목록에 다음 주소를 추가해야 합니다. 주소는 다음과 같이 다양합니다.

주소 목적
vCenter 서버의 IP 주소 vCenter 서버에서 인터넷 트래픽을 허용합니다.
모든 ESXi 호스트의 IP 주소 GKE On-Prem 클러스터를 실행하는 ESXi 호스트에 인터넷 트래픽을 허용합니다.
부하 분산기에서 구성하려는 다른 IP 주소 클라이언트 및 워크로드와 같은 다른 IP 주소에 인터넷 트래픽을 허용합니다.

Pod 및 서비스 범위 설정

관리자 클러스터 및 만들려는 각 사용자 클러스터에 대해 2개의 개별 CIDR IPv4 블록(pod IP용으로 1개, 서비스 IP용으로 1개)을 별도로 설정해야 합니다.

이러한 범위의 크기는 만들려는 pod 및 서비스 수에 따라 다릅니다. 예를 들어 클러스터에서 256개 미만의 서비스를 만들려면 10.96.233.0/24와 같이 서비스 범위를 24개로 줄여야 합니다. 클러스터에 4,096개 미만의 pod를 만들려면 172.16.0.0/20과 같이 20개 이상의 pod 범위를 따로 설정할 수 있습니다.

특정 클러스터의 경우 서비스 및 pod 범위가 겹쳐서는 안됩니다. 또한 서비스 및 pod 범위는 클러스터의 노드에 사용되는 IP 주소와 겹치지 않아야 합니다.

부하 분산기 준비

GKE On-Prem 클러스터는 '통합' 및 '수동'의 두 가지 부하 분산 모드 중 하나로 실행할 수 있습니다. 통합 모드에서는 GKE On-Prem 클러스터가 F5 BIG-IP 부하 분산기로 실행됩니다. 수동 모드에서는 다른 부하 분산기를 수동으로 구성합니다.

F5 BIG-IP 파티션 준비

통합 모드를 사용하려는 경우 만들려는 각 GKE On-Prem 클러스터의 부하 분산을 처리하기 위해 F5 BIG-IP 파티션을 만들어야 합니다.

처음에는 2개 이상의 파티션을 만들어야 합니다. 하나는 관리자 클러스터용이고 다른 하나는 사용자 클러스터용입니다. 해당 클러스터를 만들기 전에 파티션을 만들어야 합니다.

클러스터 파티션을 다른 용도로 사용하지 마세요. 각 클러스터에는 해당 클러스터를 단독으로 사용하는 파티션이 있어야 합니다.

파티션을 만드는 방법을 알아보려면 F5 BIG-IP 문서의 관리 파티션 만들기를 참조하세요.

수동 부하 분산 모드 사용

수동 부하 분산 모드는 통합 모드보다 더 많은 구성을 필요로 합니다. 자세한 내용은 수동 부하 분산 사용 설정을 참조하세요.