설치, 하드웨어, 운영체제의 기본 요건을 충족하는 것 외에도 Anthos clusters on bare metal을 실행하려면 Google Cloud 프로젝트, API, 서비스 계정을 구성하고 설정해야 합니다.
bmctl
명령어를 사용하면 클러스터를 만들 때 서비스 계정과 API를 자동으로 사용 설정할 수 있지만, 이러한 서비스를 수동으로 설정하여 작업을 보다 세밀하게 제어할 수도 있습니다.
API 사용 설정 중
Cloud 프로젝트에서 Google Cloud Console 또는 다음 명령어를 사용하여 다음과 같은 API를 사용 설정합니다.
연결된 프로젝트에 대한 roles/owner
, roles/editor
또는 roles/serviceusage.serviceUsageAdmin
역할이 있어야 합니다.
servicemanagement.googleapis.com
servicecontrol.googleapis.com
gcloud services enable --project=PROJECT_ID \ servicemanagement.googleapis.com \ servicecontrol.googleapis.com
기본 Cloud 프로젝트 ID 및 역할 설정
서비스 계정 구성 외에 기본 project id
를 설정할 수 있습니다.
Anthos clusters on bare metal의 프로젝트에 대한 owner
또는 editor
역할이 있어야 합니다.
기본 프로젝트를 설정하려면 다음 명령어를 실행하고 PROJECT_ID를 Google Cloud 프로젝트 ID로 바꿉니다.
gcloud config set project PROJECT_ID
서비스 계정 수동 구성
Anthos clusters on bare metal의 bmctl
명령어로 클러스터를 만들 때 Google 서비스 계정 및 API를 자동으로 설정할 수 있습니다.
하지만 이러한 서비스를 수동으로 설정하면 시스템을 보다 세부적으로 제어하거나 기본 서비스, 계정, 프로젝트 집합을 사용하여 클러스터 생성을 간소화할 수 있습니다.
Anthos clusters on bare metal에서 클러스터를 Google Cloud에 연결합니다. 이 연결을 통해 다음을 사용하여 Cloud Console에서 클러스터를 관리하고 관찰할 수 있습니다.
- bare metal 클러스터를 Google Cloud에 연결하려면 연결하세요. 이렇게 하면 통합 사용자 인터페이스, Cloud Console을 비롯하여 클러스터 및 워크로드 관리 기능에 액세스하여 클러스터와 상호작용할 수 있습니다.
- Cloud Console에서 클러스터의 로그 및 측정항목을 보기 위한 로깅 및 모니터링
수동으로 액세스를 구성하는 프로세스는 다음과 같습니다.
- Cloud 프로젝트에서 필요한 Google 서비스를 사용 설정합니다.
- 필요한 역할을 가진 다음 서비스 계정을 만듭니다.
- 연결-에이전트 서비스 계정: Connect는 이 서비스 계정을 사용하여 클러스터와 Google Cloud 간의 연결을 유지합니다.
- 연결-등록 서비스 계정: Connect는 이 서비스 계정을 사용하여 Google Cloud에 클러스터를 등록합니다.
- 로깅-모니터링 서비스 계정: Connect는 이 서비스 계정을 사용하여 클러스터의 로그와 측정항목을 Logging 및 Monitoring으로 내보냅니다.
- 각 서비스 계정에 대한 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 \ --iam-account=connect-agent-svc-account@PROJECT_ID.iam.gserviceaccount.com \ --project=PROJECT_ID
- 필요한 역할을 가진 연결-등록 서비스 계정을 만들고 키 파일을 다운로드합니다. 이 단계에서는
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 \ --iam-account=connect-register-svc-account@PROJECT_ID.iam.gserviceaccount.com \ --project=PROJECT_ID
gcloud services enable --project=PROJECT_ID \ gkeconnect.googleapis.com \ gkehub.googleapis.com \ cloudresourcemanager.googleapis.com \ anthos.googleapis.com
Logging 및 Monitoring에 사용할 서비스 계정 구성
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 \ --iam-account=logging-monitoring-svc-account@PROJECT_ID.iam.gserviceaccount.com \ --project=PROJECT_ID