설치, 하드웨어, 운영체제의 기본 요건을 충족하는 것 외에도 베어메탈용 Anthos 클러스터를 실행하려면 Google Cloud 프로젝트, API, 서비스 계정을 구성하고 설정해야 합니다.
bmctl
명령어를 사용하면 클러스터를 만들 때 서비스 계정과 API를 자동으로 사용 설정할 수 있지만, 이러한 서비스를 수동으로 설정하여 작업을 보다 세밀하게 제어할 수도 있습니다.
API 사용 설정
프로젝트에서 API를 사용 설정하려면 roles/owner
, roles/editor
, roles/serviceusage.serviceUsageAdmin
역할 중 하나를 계정에 할당해야 합니다.
자세한 내용은 단일 역할 부여를 참조하세요.
기본 Google Cloud 프로젝트 ID 및 역할 설정
서비스 계정 구성 외에 기본 project id
를 설정할 수 있습니다.
베어메탈용 Anthos 클러스터의 프로젝트에 대한 owner
또는 editor
역할이 있어야 합니다.
기본 프로젝트를 설정하려면 다음 명령어를 실행하고 PROJECT_ID를 Google Cloud 프로젝트 ID로 바꿉니다.
gcloud config set project PROJECT_ID
서비스 계정 수동 구성
베어메탈용 Anthos 클러스터의 bmctl
명령어로 클러스터를 만들 때 Google 서비스 계정 및 API를 자동으로 설정할 수 있습니다.
하지만 이러한 서비스를 수동으로 설정하면 시스템을 보다 세부적으로 제어하거나 기본 서비스, 계정, 프로젝트 집합을 사용하여 클러스터 생성을 간소화할 수 있습니다.
베어메탈용 Anthos 클러스터에서 클러스터를 Google Cloud에 연결합니다. 이 연결을 통해 다음 기능이 사용 설정됩니다.
- 베어메탈 클러스터를 Google Cloud에 연결하려면 연결하세요. 이를 통해 클러스터 및 워크로드 관리 기능(통합 사용자 인터페이스, Cloud 콘솔 포함)에 액세스하여 클러스터와 상호작용할 수 있습니다.
- Cloud 콘솔에서 클러스터의 로그 및 측정항목을 보기 위한 로깅 및 모니터링
- Cloud Storage 버킷에 클러스터 스냅샷을 자동으로 업로드
수동으로 액세스를 구성하는 프로세스는 다음과 같습니다.
- Cloud 프로젝트에서 필요한 Google 서비스를 사용 설정합니다.
- 필요한 역할을 가진 다음 서비스 계정을 만듭니다.
- 연결-에이전트 서비스 계정: Connect는 이 서비스 계정을 사용하여 클러스터와 Google Cloud 간의 연결을 유지합니다.
- 연결-등록 서비스 계정: Connect는 이 서비스 계정을 사용하여 Google Cloud에 클러스터를 등록합니다.
- 로깅-모니터링 서비스 계정: Connect는 이 서비스 계정을 사용하여 클러스터의 로그와 측정항목을 Logging 및 Monitoring으로 내보냅니다.
- 스토리지-에이전트 서비스 계정:
bmctl
는 이 서비스 계정을 사용하여 클러스터의 스냅샷을 Cloud Storage에 자동으로 저장합니다.
- 각 서비스 계정에 대한 JSON 키 파일을 다운로드합니다.
그런 다음 JSON 키 파일에 대한 참조를 적절한 클러스터 구성 파일에 추가합니다. 자세한 내용은 클러스터 만들기: 개요를 참조하세요.
Connect에서 사용할 서비스 계정 구성
서비스 계정 및 키 파일을 만들려면 다음 안내를 따르세요.
- 현재 위치가
baremetal
디렉터리인지 확인합니다. - Cloud 프로젝트에서 필요한 Google 서비스를 사용 설정합니다.
- 필요한 역할을 가진 연결-에이전트 서비스 계정을 만들고 키 파일을 다운로드합니다.
이 단계에서는
baremetal
디렉터리에connect-agent.json
키 파일을 만듭니다.- 서비스 계정 만들기:
- gkehub.connect 역할을 부여합니다.
- 서비스 계정 JSON 키 파일을 다운로드합니다.
gcloud iam service-accounts create connect-agent-svc-account --project=PROJECT_ID
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:connect-agent-svc-account@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/gkehub.connect"
gcloud iam service-accounts keys create connect-agent.json \ --project=PROJECT_ID \ --iam-account=connect-agent-svc-account@PROJECT_ID.iam.gserviceaccount.com
- 필요한 역할을 가진 연결-등록 서비스 계정을 만들고 키 파일을 다운로드합니다. 이 단계에서는
baremetal
디렉터리에 연결-register.json
키 파일을 만듭니다.- 서비스 계정 만들기:
- gkehub.admin 역할을 부여합니다.
- 서비스 계정 JSON 키 파일을 다운로드합니다.
gcloud iam service-accounts create connect-register-svc-account \ --project=PROJECT_ID
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:connect-register-svc-account@PROJECT_ID.iam.gserviceaccount.com" \ --role=roles/gkehub.admin
gcloud iam service-accounts keys create connect-register.json \ --project=PROJECT_ID \ --iam-account=connect-register-svc-account@PROJECT_ID.iam.gserviceaccount.com
gcloud services enable --project=PROJECT_ID \ gkeconnect.googleapis.com \ gkehub.googleapis.com \ cloudresourcemanager.googleapis.com \ anthos.googleapis.com
로그를 감사하고 프로젝트를 모니터링하도록 서비스 계정 구성
Logging 및 Monitoring의 서비스 계정과 키 파일을 만들려면 다음 안내를 따르세요.
- 현재 위치가
baremetal
디렉터리인지 확인합니다. - Cloud 프로젝트에서 필요한 Google 서비스를 사용 설정합니다.
- 필요한 역할을 가진 로깅-모니터링 서비스 계정을 만들고 키 파일을 다운로드합니다. 이 단계에서는
baremetal
디렉터리에cloud-ops.json
키 파일을 만듭니다. - 서비스 계정 만들기
- logging.logWriter 역할을 부여합니다.
- monitoring.metricWriter 역할을 부여합니다.
- roles/stackdriver.resourceMetadata.writer 역할을 부여합니다.
- roles/opsconfigmonitoring.resourceMetadata.writer 역할을 부여합니다.
- roles/monitoring.dashboardEditor 역할을 부여합니다.
- 서비스 계정 JSON 키 파일을 다운로드합니다.
gcloud services enable --project PROJECT_ID \ anthos.googleapis.com \ anthosaudit.googleapis.com \ anthosgke.googleapis.com \ cloudresourcemanager.googleapis.com \ gkeconnect.googleapis.com \ gkehub.googleapis.com \ serviceusage.googleapis.com \ stackdriver.googleapis.com \ monitoring.googleapis.com \ logging.googleapis.com \ opsconfigmonitoring.googleapis.com
gcloud iam service-accounts create logging-monitoring-svc-account \ --project=PROJECT_ID
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:logging-monitoring-svc-account@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/logging.logWriter"
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:logging-monitoring-svc-account@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/monitoring.metricWriter"
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:logging-monitoring-svc-account@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/stackdriver.resourceMetadata.writer"
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:logging-monitoring-svc-account@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/opsconfigmonitoring.resourceMetadata.writer"
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:logging-monitoring-svc-account@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/monitoring.dashboardEditor"
gcloud iam service-accounts keys create cloud-ops.json \ --project=PROJECT_ID \ --iam-account=logging-monitoring-svc-account@PROJECT_ID.iam.gserviceaccount.com
Cloud Storage 버킷에 업로드할 수 있는 서비스 계정 구성
클러스터의 스냅샷을 Cloud Storage 버킷에 자동으로 업로드하도록 지원하는 서비스 계정과 키 파일을 만들려면 다음 안내를 따르세요.
- 현재 위치가
baremetal
디렉터리인지 확인합니다. - Cloud 프로젝트에서 필요한 Google 서비스를 사용 설정합니다.
bmctl check cluster --snapshot
명령어가 Cloud Storage 버킷에 클러스터 스냅샷을 자동으로 업로드하기 위해 사용되는 서비스 계정을 만듭니다.- 서비스 계정이 데이터를 Cloud Storage 버킷으로 업로드할 수 있도록 서비스 계정에
storage.admin
역할을 부여합니다. - 서비스 계정 JSON 키 파일을 다운로드합니다.
gcloud services enable --project=PROJECT_ID \ storage.googleapis.com
gcloud iam service-accounts create storage-agent-svc-account \ --project=PROJECT_ID
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:storage-agent-svc-account@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/storage.admin"
gcloud iam service-accounts keys create storage-agent.json \ --iam-account=storage-agent-svc-account@PROJECT_ID.iam.gserviceaccount.com
클러스터 스냅샷을 만들어 Cloud Storage 버킷에 자동으로 업로드하는 방법에 대한 자세한 내용은 클러스터 문제 진단을 위한 스냅샷 만들기를 참조하세요.