Anthos clusters on AWS(GKE on AWS)의 새 버전이 9월 29일 출시되었습니다. 자세한 정보는 출시 노트를 참조하세요.

기본 요건

이 페이지에서는 Anthos clusters on AWS(GKE on AWS)를 설치하기 전에 완료해야 하는 단계를 설명합니다.

환경

Anthos clusters on AWS를 설치하려면 다양한 도구를 설치하고 실행할 수 있는 환경이 필요합니다. 다음 단계에서는 Linux 또는 macOS에서 bash 셸을 사용한다고 가정합니다. bash 셸 환경에 액세스할 수 없는 경우 Cloud Shell을 사용할 수 있습니다.

AWS 요구사항

이 주제를 완료하려면 명령줄 액세스 권한이 있는 AWS 계정과 사용자 클러스터와 동일한 리전에 있는 2개의 AWS Key Management Service(KMS) 키가 필요합니다.

다른 필수 AWS 리소스에 대한 자세한 내용은 요구사항을 참조하세요.

AWS 구성

시작하기 전에

이 섹션을 완료하기 전에 다음을 수행하세요.

  • AWS CLI를 다운로드하고 설치합니다. aws --version을 실행하여 설치를 확인합니다. 실행 파일을 찾을 수 없는 경우 PATHaws 도구를 추가합니다.
  • aws configure를 사용하여 AWS IAM 사용자 인증 정보 및 AWS 리전을 구성합니다.

관리자 권한

Anthos clusters on AWS를 사용하려면 관리 서비스의 생성자에 특정 권한이 있어야 합니다. 관리 서비스 또는 사용자 클러스터를 만들려면 먼저 요구사항을 충족하는 AWS IAM 사용자 인증 정보를 생성하거나 이 정보에 대한 액세스 권한을 얻어야 합니다.

KMS 키 만들기

Anthos clusters on AWS에는 2개의 AWS KMS 키가 필요합니다. KMS 키는 다음을 암호화합니다.

  • 봉투 암호화를 이용한 설치 프로세스 중의 데이터
  • 사용자 클러스터의 애플리케이션 레이어 보안 비밀

아래 단계에 따라 2개의 AWS KMS 키를 만드세요.

명령줄

  1. AWS 계정에서 KMS 키를 만듭니다.

    aws kms create-key
    

    출력에는 키의 메타데이터가 포함됩니다.

  2. 이전 명령어의 출력에서 Arn 필드에 키의 Amazon 리소스 이름(ARN)을 복사합니다. 예를 들어 us-west-2 리전의 키에 ARN arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab가 있습니다.

  3. aws kms create-alias로 키의 별칭을 만듭니다. 별칭을 사용하면 AWS KMS 키를 이름으로 관리할 수 있습니다.

    aws kms create-alias \
        --alias-name=alias/key-name \
        --target-key-id=key-arn
    
  4. 다른 키에 대해 위 단계를 반복합니다.

Console

  1. AWS 콘솔에 로그인합니다.
  2. KMS로 이동한 다음 사이드바에서 고객 관리 키를 선택합니다.
  3. 키 만들기를 클릭합니다.
  4. 기본 옵션을 선택된 상태로 둡니다.
  5. 키가 생성되면 목록에서 키를 선택합니다.
  6. 키의 ARN을 복사합니다.
  7. 다른 키에 대해 위 단계를 반복합니다.

Google Cloud 요구사항

조직에서 Google Cloud 환경에 제약조건을 적용하면 이 문서의 일부 단계가 올바르게 작동하지 않을 수 있습니다. 이 경우 공개 IP 주소 또는 서비스 계정 키 만들기와 같은 작업을 완료하지 못할 수 있습니다. 제약조건에 대한 오류를 반환하는 요청을 수행하는 경우 제한된 Google Cloud 환경에서 애플리케이션 개발 방법을 참조하세요.

시작하기 전에

  • Anthos clusters on AWS 환경을 연결하는 Google Cloud 프로젝트에서 API를 사용 설정하려면 Google 계정에 대한 프로젝트 소유자 권한이 있어야 합니다. 소유자 권한은 다음 섹션에서 Anthos clusters on AWS 서비스 계정을 만들 때만 사용합니다.

  • Cloud SDK를 설치합니다.

  • Google Cloud 프로젝트에 Anthos API를 사용 설정해야 합니다. 이 API를 사용 설정하면 Cloud 프로젝트에서 다른 Anthos 기능을 사용할 수 있습니다.

Anthos clusters on AWS 서비스 계정 만들기

이 섹션에서는 Anthos clusters on AWS용 IAM 서비스 계정과 키 3개를 만듭니다. 이 서비스 계정은 다음 목록에 설명되어 있습니다.

이름 역할 설명
management-sa gkehub.admin,
serviceusage.serviceUsageViewer
허브 멤버십을 관리하고 Google Cloud APIs가 사용 설정되었는지 확인할 수 있는 권한입니다.
hub-sa gkehub.connect 사용자 클러스터와 허브 간에 Connect를 설정할 수 있는 권한입니다.
node-sa storage.objectViewer Container Registry에 액세스할 수 있는 권한입니다.

명령줄

  1. gcloud 명령줄 도구를 사용하여 인증합니다.

    gcloud auth login &&\
    gcloud auth application-default login
    

    cloud.google.com으로 이동해 Google 계정으로 인증하라는 메시지가 두 번 표시됩니다.

  2. Google Cloud 프로젝트를 환경 변수로 설정하고 gcloud 도구를 사용하여 기본 project-id를 설정합니다.

    export PROJECT_ID=project-id
    
    gcloud config set project $PROJECT_ID
    

    project-id 값을 Google Cloud 프로젝트로 바꿉니다.

  3. Google Cloud APIs를 사용 설정합니다.

    gcloud services enable anthos.googleapis.com
    gcloud services enable cloudresourcemanager.googleapis.com
    gcloud services enable gkehub.googleapis.com
    gcloud services enable gkeconnect.googleapis.com
    gcloud services enable logging.googleapis.com
    gcloud services enable monitoring.googleapis.com
    gcloud services enable serviceusage.googleapis.com
    gcloud services enable stackdriver.googleapis.com
    gcloud services enable storage-api.googleapis.com
    gcloud services enable storage-component.googleapis.com
    
  4. gcloud로 다음 명령어를 실행하여 서비스 계정을 만듭니다.

    gcloud iam service-accounts create management-sa
    gcloud iam service-accounts create hub-sa
    gcloud iam service-accounts create node-sa
    
  5. gcloud로 다음 명령어를 실행하여 각 서비스 계정의 키를 다운로드합니다.

    gcloud iam service-accounts keys create management-key.json \
         --iam-account management-sa@$PROJECT_ID.iam.gserviceaccount.com
    gcloud iam service-accounts keys create hub-key.json \
         --iam-account hub-sa@$PROJECT_ID.iam.gserviceaccount.com
    gcloud iam service-accounts keys create node-key.json \
         --iam-account node-sa@$PROJECT_ID.iam.gserviceaccount.com
    
  6. 관리 서비스 계정에 역할을 부여하세요.

    gcloud projects add-iam-policy-binding \
        $PROJECT_ID \
        --member serviceAccount:management-sa@$PROJECT_ID.iam.gserviceaccount.com \
        --role roles/gkehub.admin
    gcloud projects add-iam-policy-binding \
        $PROJECT_ID \
        --member serviceAccount:management-sa@$PROJECT_ID.iam.gserviceaccount.com \
        --role roles/serviceusage.serviceUsageViewer
    
  7. 허브 서비스 계정에 역할을 부여하세요.

    gcloud projects add-iam-policy-binding \
        $PROJECT_ID \
        --member serviceAccount:hub-sa@$PROJECT_ID.iam.gserviceaccount.com \
        --role roles/gkehub.connect
    
  8. 노드 서비스 계정에 역할을 부여하세요.

    gcloud projects add-iam-policy-binding \
          $PROJECT_ID \
          --member serviceAccount:node-sa@$PROJECT_ID.iam.gserviceaccount.com \
          --role roles/storage.objectViewer
    

Console

  1. Google Cloud Console API 라이브러리 페이지를 엽니다.
  2. 화면 상단의 드롭다운에서 원하는 프로젝트를 선택합니다.
  3. 다음 API를 찾아 사용 설정합니다.

    • Anthos
    • Cloud Resource Manager
    • Cloud Storage
    • Cloud Logging
    • Google Cloud Storage JSON API
    • GKE 허브
    • GKE Connect API
    • 서비스 사용량
    • Stackdriver
    • Stackdriver Monitoring
  4. 서비스 계정 페이지를 엽니다.

  5. 다음으로 서비스 계정을 만들고 management-sa 서비스 계정에 역할을 할당합니다.

    1. 서비스 계정 만들기를 클릭합니다.
    2. 계정 관리 SA 이름을 지정하고 만들기를 클릭합니다. 이 서비스 계정에 프로젝트에 대한 액세스 권한 부여 화면이 나타납니다.
    3. GKE 허브 관리자 및 서비스 사용량 뷰어 역할을 추가합니다.
    4. 계속을 클릭합니다. 사용자에게 이 서비스 계정에 대한 액세스 권한 부여 화면이 표시됩니다.
    5. 완료를 클릭합니다. 프로젝트의 서비스 계정 화면이 표시됩니다.
    6. 서비스 계정의 이메일(management-sa@project_id.iam.gserviceaccount.com)이 포함된 행을 찾습니다.
    7. 서비스 계정의 작업 메뉴를 클릭하고 키 관리를 선택합니다.
    8. 키 추가 드롭다운 메뉴를 클릭합니다.
    9. 새 키 만들기를 클릭합니다.
    10. 키 유형으로 JSON을 선택하고 만들기를 클릭합니다. 브라우저에서 서비스 계정 키를 다운로드합니다.
    11. management-key.json 파일의 이름을 바꿉니다.
  6. 다음으로 서비스 계정을 만들고 hub-sa 서비스 계정에 역할을 할당합니다.

    1. 서비스 계정 만들기를 클릭합니다.
    2. 계정 허브 SA 이름을 지정하고 만들기를 클릭합니다. 이 서비스 계정에 프로젝트에 대한 액세스 권한 부여 화면이 나타납니다.
    3. GKE 허브 연결 에이전트 역할을 추가합니다.
    4. 계속을 클릭합니다. 사용자에게 이 서비스 계정에 대한 액세스 권한 부여 화면이 표시됩니다.
    5. 완료를 클릭합니다. 프로젝트의 서비스 계정 화면이 표시됩니다.
    6. 서비스 계정의 이메일(hub-sa@project_id.iam.gserviceaccount.com)이 포함된 행을 찾습니다.
    7. 서비스 계정의 작업 메뉴를 클릭하고 키 관리를 선택합니다.
    8. 키 추가 드롭다운 메뉴를 클릭합니다.
    9. 새 키 만들기를 클릭합니다.
    10. 키 유형으로 JSON을 선택하고 만들기를 클릭합니다. 브라우저에서 서비스 계정 키를 다운로드합니다.
    11. hub-key.json 파일의 이름을 바꿉니다.
  7. 다음으로 서비스 계정을 만들고 node-sa 서비스 계정에 역할을 할당합니다.

    1. 서비스 계정 만들기를 클릭합니다.
    2. 계정 노드 SA 이름을 지정하고 만들기를 클릭합니다. 이 서비스 계정에 프로젝트에 대한 액세스 권한 부여 화면이 나타납니다.
    3. 스토리지 객체 뷰어 역할을 추가합니다.
    4. 완료를 클릭합니다. 프로젝트의 서비스 계정 화면이 표시됩니다.
    5. 서비스 계정의 이메일(node-sa@project_id.iam.gserviceaccount.com)이 포함된 행을 찾습니다.
    6. 서비스 계정의 작업 메뉴를 클릭하고 키 관리를 선택합니다.
    7. 키 추가 드롭다운 메뉴를 클릭합니다.
    8. 새 키 만들기를 클릭합니다.
    9. 키 유형으로 JSON을 선택하고 만들기를 클릭합니다. 브라우저에서 서비스 계정 키를 다운로드합니다.
    10. node-key.json 파일의 이름을 바꿉니다.

Anthos GKE 명령줄 도구

anthos-gke는 Anthos clusters on AWS를 위한 명령줄 도구입니다. anthos-gke를 사용하여 관리 서비스를 설치하는 구성을 만듭니다. anthos-gke의 최신 버전은 aws-1.9.0-gke.2입니다.

  1. Cloud Storage에서 바이너리를 다운로드합니다.

    Linux

    gsutil cp gs://gke-multi-cloud-release/aws/aws-1.9.0-gke.2/bin/linux/amd64/anthos-gke .
    

    macOS

    gsutil cp gs://gke-multi-cloud-release/aws/aws-1.9.0-gke.2/bin/darwin/amd64/anthos-gke .
    
  2. anthos-gke의 권한을 업데이트하여 /usr/local/bin에 복사합니다.

    chmod 755 anthos-gke
    sudo mv anthos-gke /usr/local/bin
    
  3. 버전이 aws-1.9.0-gke.2인지 확인합니다.

    anthos-gke version
    

Terraform

anthos-gke 도구는 Terraform 구성 파일을 생성하고 terraform 명령줄 도구를 호출합니다.

AWS의 Anthos 클러스터에는 v0.14.3보다 높은 Terraform 버전이 필요합니다. 다음 명령어를 사용하여 Terraform 버전을 확인할 수 있습니다.

terraform version

v0.14.3 이상이 없으면 관리 서비스를 만들기 전에 Terraform을 다운로드 및 설치합니다.

Terraform 업그레이드

Anthos clusters on AWS를 설치한 후 Terraform을 업그레이드하려면 부 버전을 통해 Terraform 바이너리를 순서대로 업그레이드해야 합니다.

예를 들어 Terraform을 v0.12.x에서 v0.14.x로 업그레이드하려면 v0.13.x를 일시적으로 설치해야 합니다. v0.13.x를 설치한 후 anthos-gke aws management initanthos-gke aws management apply를 실행합니다. Anthos clusters on AWS가 구성을 업데이트합니다. 그 다음 v0.14.x로 업그레이드할 수 있습니다.

Kubernetes

Anthos clusters on AWS에는 kubectl 버전 1.17 이상이 필요합니다. 다음을 실행하여 kubectl 버전을 확인할 수 있습니다.

kubectl version --client -o yaml | grep gitVersion

1.17 이상이 없으면 kubectl의 최신 버전을 설치하세요.

다음 단계