관리자 워크스테이션 만들기

이 문서에서는 클러스터를 만드는 데 사용할 수 있는 VMware용 Anthos 클러스터(GKE On-Prem)의 관리자 워크스테이션을 만드는 방법을 설명합니다.

이 문서의 단계에서는 64비트 Linux, Windows 10, Windows Server 2019, macOS 10.15 이상에서 사용할 수 있는 gkeadm 명령줄 도구를 사용합니다.

여기에는 전체 안내가 나와 있습니다. 관리자 워크스테이션 만들기에 대한 간략한 소개는 관리자 워크스테이션 만들기(빠른 시작)를 참조하세요.

시작하기 전에

vCenter 서버 주소 이해

CA 인증서 경로 이해

Google Cloud CLI 설치

여러 Google Cloud 프로젝트 사용에 설명된 대로 Google Cloud 프로젝트를 하나 이상 만들기

서비스 계정 계획

gkeadm을 사용하여 관리자 워크스테이션을 만들 때 gkeadm에서 일부 서비스 계정과 키를 자동으로 만들도록 할 수 있는 옵션이 있습니다. 이 경우 gkeadm에서 서비스 계정에 적절한 Identity and Access Management 역할도 부여합니다.

또는 서비스 계정 및 키를 수동으로 만들 수 있습니다. 이 경우 서비스 계정에 IAM 역할을 수동으로 부여해야 합니다.

서비스 계정을 수동으로 만들면 gkeadm에서 자동으로 만드는 것보다 유연성이 높아집니다.

  • 자동으로 만들어진 서비스 계정은 모두 구성요소 액세스 서비스 계정과 동일한 상위 Google Cloud 프로젝트를 갖습니다. 서비스 계정을 수동으로 만들 때 상위 Google Cloud 프로젝트를 선택할 수 있습니다.

  • 자동으로 만들어진 서비스 계정에는 구성요소 액세스 서비스 계정의 상위 Google Cloud 프로젝트에 대한 IAM 역할이 모두 부여됩니다. 이 프로젝트가 클러스터와 연결된 유일한 Google Cloud 프로젝트인 경우 문제가 되지 않습니다. 하지만 클러스터를 여러 Google Cloud 프로젝트와 연결하려면 선택한 Google Cloud 프로젝트에서 서비스 계정에 역할을 부여할 수 있는 유연성이 필요합니다.

자체 서비스 계정을 만들기로 한 경우 서비스 계정 및 키의 안내를 따릅니다.

gkeadm에서 자동으로 서비스 계정을 만드는지 여부에 관계없이 수동으로 만들어야 하는 서비스 계정은 구성 요소 액세스 서비스 계정입니다. 구성요소 액세스 서비스 계정을 만들고 여기에 적절한 IAM 역할을 부여하는 방법은 구성요소 액세스 서비스 계정을 참조하세요.

구성 파일의 템플릿 생성

현재 디렉터리에 gkeadm을 다운로드합니다.

템플릿을 생성합니다.

./gkeadm create config

위 명령어를 실행하면 현재 디렉터리에 다음 파일이 만들어집니다.

  • credential.yaml
  • admin-ws-config.yaml

credential.yaml에 입력

credential.yaml에 vCenter 사용자 이름과 비밀번호를 입력합니다. 예를 들면 다음과 같습니다.

kind: CredentialFile
items:
- name: vCenter
  username: "my-account-name"
  password: "AadmpqGPqq!a"

admin-ws-config.yaml에 입력

admin-ws-config.yaml의 여러 필드는 이미 기본값 또는 생성된 값으로 입력되어 있습니다. 채워진 값을 유지하거나 원하는 대로 변경할 수 있습니다.

필수 필드

다음 필수 필드를 입력합니다. 필드를 입력하는 방법에 대한 자세한 내용은 관리자 워크스테이션 구성 파일을 참조하세요.

gcp:
   componentAccessServiceAccountKeyPath: "Fill in"
vCenter:
  credentials:
    address: "Fill in"
  datacenter: "Fill in"
  datastore: "Fill in"
  cluster: "Fill in"
  network: "Fill in"
  resourcePool: "Fill in"
  caCertPath: "Fill in"

관리자 워크스테이션이 프록시 서버 뒤에 있는 경우 proxyURL 필드를 입력합니다.

adminWorkstation:
  proxyURL: "Fill in"

관리자 워크스테이션이 DHCP 서버에서 IP 주소를 가져오도록 하려면 ipAllocationMode"dhcp"로 설정하고 hostconfig 섹션을 삭제합니다.

adminWorkstation:
  network:
    ipAllocationMode: "dhcp"

관리자 워크스테이션에 고정 IP 주소를 지정하려면 ipAllocationMode"static"으로 설정하고 hostconfig 섹션을 입력합니다.

adminWorkstation:
  network:
    ipAllocationMode: "static"
    hostconfig:
      ip: "Fill in"
      gateway: "Fill in"
      netmask: "Fill in"
      dns:
      - "Fill in"

로그인

SDK account 속성으로 설정된 Google 계정을 SDK 계정이라고 합니다. gkeadm 명령줄 도구는 SDK 계정을 사용하여 관리자 워크스테이션 OVA를 다운로드하고 Google Cloud 프로젝트에서 서비스를 사용 설정합니다.

gkeadm이 서비스 계정을 자동으로 만들도록 하면 gkeadm은 SDK 계정을 사용하여 서비스 계정과 키를 만들고 서비스 계정에 역할을 부여합니다. 따라서 gkeadm을 실행하기 전에 SDK account 속성을 설정하여 관리자 워크스테이션을 만드는 것이 중요합니다.

Google 계정으로 로그인합니다. 그러면 SDK account 속성이 설정됩니다.

gcloud auth login

SDK account 속성이 올바르게 설정되었는지 확인합니다.

gcloud config list

SDK account 속성 값이 출력에 표시됩니다. 예를 들면 다음과 같습니다.

[core]
account = my-name@google.com
disable_usage_reporting = False
Your active configuration is: [default]

SDK 계정에 역할 부여

SDK 계정에는 구성요소 액세스 서비스 계정의 상위 Google Cloud 프로젝트에 대한 다음 IAM 역할이 있어야 합니다. 이는 gkeadm이 Google Cloud 프로젝트에서 서비스를 사용 설정할 수 있도록 하기 위함입니다.

  • serviceUsage.serviceUsageAdmin

gkeadm이 서비스 계정을 자동으로 만들도록 하면 SDK 계정에 구성요소 액세스 서비스 계정의 상위 프로젝트에 대한 다음 역할도 있어야 합니다. 이는 gkeadm이 서비스 계정과 키를 만들 수 있도록 하기 위함입니다.

  • resourcemanager.projectIamAdmin
  • iam.serviceAccountCreator
  • iam.serviceAccountKeyAdmin

Google Cloud 프로젝트에 대한 역할을 부여하려면 Google Cloud 프로젝트에 대한 특정 권한이 있어야 합니다. 자세한 내용은 리소스에 대한 액세스 권한 부여, 변경, 취소를 참조하세요.

필요한 권한이 있으면 직접 역할을 부여할 수 있습니다. 그렇지 않으면 조직의 다른 사용자가 역할을 부여해야 합니다.

SDK 계정에 필요한 역할을 부여하려면 다음 안내를 따르세요.

Linux 및 macOS

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member="user:ACCOUNT" \
    --role="roles/serviceusage.serviceUsageAdmin"

Windows

gcloud projects add-iam-policy-binding PROJECT_ID ^
    --member="user:ACCOUNT" ^
    --role="roles/serviceusage.serviceUsageAdmin"

다음을 바꿉니다.

  • PROJECT_ID: 구성요소 액세스 서비스 계정이 속하는 상위 Google Cloud 프로젝트의 ID입니다.

  • ACCOUNT: SDK 계정

gkeadm이 서비스 계정을 자동으로 만들도록 추가 역할을 부여하려면 다음 안내를 따르세요.

Linux 및 macOS

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member="user:ACCOUNT" \
    --role="roles/resourcemanager.projectIamAdmin"

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member="user:ACCOUNT" \
    --role="roles/iam.serviceAccountCreator"

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member="user:ACCOUNT" \
    --role="roles/iam.serviceAccountKeyAdmin"

Windows

gcloud projects add-iam-policy-binding PROJECT_ID ^
    --member="user:ACCOUNT" ^
    --role="roles/resourcemanager.projectIamAdmin"

gcloud projects add-iam-policy-binding PROJECT_ID ^
    --member="user:ACCOUNT" ^
    --role="roles/iam.serviceAccountCreator"

gcloud projects add-iam-policy-binding PROJECT_ID ^
    --member="user:ACCOUNT" ^
    --role="roles/iam.serviceAccountKeyAdmin"

다음을 바꿉니다.

  • PROJECT_ID: 구성요소 액세스 서비스 계정의 상위 프로젝트 ID

  • ACCOUNT: SDK 계정

관리자 워크스테이션 만들기

다음 명령어를 입력하여 관리자 워크스테이션을 만듭니다. gkeadm에서 서비스 계정을 만들도록 하려면 --auto-create-service-accounts 플래그를 포함합니다. 자체 서비스 계정을 수동으로 만들려면 플래그를 생략합니다.

./gkeadm create admin-workstation [--auto-create-service-accounts]

출력은 관리자 워크스테이션 생성에 대한 자세한 정보를 제공합니다.

...
Getting ... service account...
...
********************************************************************
Admin workstation is ready to use.

Admin workstation information saved to /usr/local/google/home/me/my-admin-workstation
This file is required for future upgrades
SSH into the admin workstation with the following command:
ssh -i /usr/local/google/home/me/.ssh/gke-admin-workstation ubuntu@172.16.5.1
********************************************************************

관리자 워크스테이션으로 SSH 연결 가져오기

이전 출력의 끝부분에 관리자 워크스테이션으로 SSH 연결을 가져오는 데 사용할 수 있는 명령어가 있습니다. 지금 명령어를 입력합니다. 예를 들면 다음과 같습니다.

ssh -i /usr/local/google/home/me/.ssh/gke-admin-workstation ubuntu@172.16.5.1

관리자 워크스테이션의 파일을 나열합니다.

ls -1

출력에서 두 개의 클러스터 구성 파일, CA 인증서 파일, 구성요소 액세스 서비스 계정의 JSON 키 파일을 볼 수 있습니다. gkeadm에서 서비스 계정을 만든 경우 해당 서비스 계정의 JSON 키 파일도 확인할 수 있습니다. 예를 들면 다음과 같습니다.

admin-cluster.yaml
user-cluster.yaml
vcenter-ca-cert.pem
component-access-key.json

gkeadm이 관리자 워크스테이션에서 구성요소 액세스 서비스 계정을 활성화했는지 확인합니다.

gcloud config get-value account

JSON 키 파일을 관리자 워크스테이션에 복사

클러스터를 만들기 전에 서비스 계정의 JSON 키 파일이 홈 디렉터리의 관리자 워크스테이션에 있어야 합니다.

구성요소 액세스 서비스 계정의 키가 이미 관리자 워크스테이션에 있습니다.

gkeadm create admin-workstation을 실행할 때 --auto-create-service-accounts 플래그를 포함했으면 다음 서비스 계정의 키는 이미 홈 디렉터리의 관리자 워크스테이션에 있습니다. 그렇지 않으면 수동으로 키를 관리자 워크스테이션의 홈 디렉터리에 복사해야 합니다.

  • 연결-등록 서비스 계정
  • 로깅-모니터링 서비스 계정

다음 서비스 계정을 만든 경우 이 서비스 계정의 키를 수동으로 관리자 워크스테이션의 홈 디렉터리에 복사해야 합니다.

  • 사용량 측정 서비스 계정
  • 감사 로깅 서비스 계정
  • Binary Authorization 서비스 계정

다음 단계

관리자 클러스터 만들기