Google 서비스 및 서비스 계정 사용 설정

설치, 하드웨어, 운영체제의 기본 요건을 충족하는 것 외에도 베어메탈용 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에서 사용할 서비스 계정 구성

서비스 계정 및 키 파일을 만들려면 다음 안내를 따르세요.

  1. 현재 위치가 baremetal 디렉터리인지 확인합니다.
  2. Cloud 프로젝트에서 필요한 Google 서비스를 사용 설정합니다.
  3. gcloud services enable --project=PROJECT_ID \
        gkeconnect.googleapis.com \
        gkehub.googleapis.com \
        cloudresourcemanager.googleapis.com \
        anthos.googleapis.com
  4. 필요한 역할을 가진 연결-에이전트 서비스 계정을 만들고 키 파일을 다운로드합니다. 이 단계에서는 baremetal 디렉터리에 connect-agent.json 키 파일을 만듭니다.
    1. 서비스 계정 만들기:
    2. gcloud iam service-accounts create connect-agent-svc-account --project=PROJECT_ID
    3. gkehub.connect 역할을 부여합니다.
    4. gcloud projects add-iam-policy-binding  PROJECT_ID \
          --member="serviceAccount:connect-agent-svc-account@PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/gkehub.connect"
    5. 서비스 계정 JSON 키 파일을 다운로드합니다.
    6. gcloud iam service-accounts keys create connect-agent.json \
          --project=PROJECT_ID \
          --iam-account=connect-agent-svc-account@PROJECT_ID.iam.gserviceaccount.com
      
  5. 필요한 역할을 가진 연결-등록 서비스 계정을 만들고 키 파일을 다운로드합니다. 이 단계에서는 baremetal 디렉터리에 연결-register.json 키 파일을 만듭니다.
    1. 서비스 계정 만들기:
    2. gcloud iam service-accounts create connect-register-svc-account \
          --project=PROJECT_ID
    3. gkehub.admin 역할을 부여합니다.
    4. gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:connect-register-svc-account@PROJECT_ID.iam.gserviceaccount.com" \
          --role=roles/gkehub.admin
    5. 서비스 계정 JSON 키 파일을 다운로드합니다.
    6. gcloud iam service-accounts keys create connect-register.json \
          --project=PROJECT_ID \
          --iam-account=connect-register-svc-account@PROJECT_ID.iam.gserviceaccount.com
      

로그를 감사하고 프로젝트를 모니터링하도록 서비스 계정 구성

Logging 및 Monitoring의 서비스 계정과 키 파일을 만들려면 다음 안내를 따르세요.

  1. 현재 위치가 baremetal 디렉터리인지 확인합니다.
  2. Cloud 프로젝트에서 필요한 Google 서비스를 사용 설정합니다.
  3. 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
    
  4. 필요한 역할을 가진 로깅-모니터링 서비스 계정을 만들고 키 파일을 다운로드합니다. 이 단계에서는 baremetal 디렉터리에 cloud-ops.json 키 파일을 만듭니다.
    1. 서비스 계정 만들기
    2. gcloud iam service-accounts create logging-monitoring-svc-account \
          --project=PROJECT_ID
      
    3. logging.logWriter 역할을 부여합니다.
    4. gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:logging-monitoring-svc-account@PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/logging.logWriter"
      
    5. monitoring.metricWriter 역할을 부여합니다.
    6. gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:logging-monitoring-svc-account@PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/monitoring.metricWriter"
      
    7. roles/stackdriver.resourceMetadata.writer 역할을 부여합니다.
    8. gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:logging-monitoring-svc-account@PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/stackdriver.resourceMetadata.writer"
      
    9. roles/opsconfigmonitoring.resourceMetadata.writer 역할을 부여합니다.
    10. gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:logging-monitoring-svc-account@PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/opsconfigmonitoring.resourceMetadata.writer"
      
    11. roles/monitoring.dashboardEditor 역할을 부여합니다.
    12. gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:logging-monitoring-svc-account@PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/monitoring.dashboardEditor"
      
    13. 서비스 계정 JSON 키 파일을 다운로드합니다.
    14. 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 버킷에 자동으로 업로드하도록 지원하는 서비스 계정과 키 파일을 만들려면 다음 안내를 따르세요.

  1. 현재 위치가 baremetal 디렉터리인지 확인합니다.
  2. Cloud 프로젝트에서 필요한 Google 서비스를 사용 설정합니다.
  3. gcloud services enable --project=PROJECT_ID \
        storage.googleapis.com
  4. bmctl check cluster --snapshot 명령어가 Cloud Storage 버킷에 클러스터 스냅샷을 자동으로 업로드하기 위해 사용되는 서비스 계정을 만듭니다.
  5. gcloud iam service-accounts create storage-agent-svc-account \
      --project=PROJECT_ID
  6. 서비스 계정이 데이터를 Cloud Storage 버킷으로 업로드할 수 있도록 서비스 계정에 storage.admin 역할을 부여합니다.
  7. gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:storage-agent-svc-account@PROJECT_ID.iam.gserviceaccount.com" \
        --role="roles/storage.admin"
    
  8. 서비스 계정 JSON 키 파일을 다운로드합니다.
  9. gcloud iam service-accounts keys create storage-agent.json \
        --iam-account=storage-agent-svc-account@PROJECT_ID.iam.gserviceaccount.com

클러스터 스냅샷을 만들어 Cloud Storage 버킷에 자동으로 업로드하는 방법에 대한 자세한 내용은 클러스터 문제 진단을 위한 스냅샷 만들기를 참조하세요.