Anthos clusters on AWS(GKE on AWS)の新しいバージョンが 9 月 29 日にリリースされました。詳細については、リリースノートをご覧ください。

要件

このページでは、AWS 上の Anthos クラスタ(GKE on AWS)をインストールする前に完了しなければならない手順について説明します。

環境

Anthos clusters on AWS をインストールするには、さまざまなツールをインストールして実行できる環境が必要です。以下の手順は、Linux または macOS で bash シェルを使用していることを前提としています。bash シェル環境にアクセスできない場合は、Cloud Shell を使用できます。

AWS の要件

このトピックを完了するには、コマンドライン アクセスが可能な AWS アカウントが必要となります。また、ユーザー クラスタと同じリージョンに AWS Key Management Service(KMS)鍵が 2 つ必要です。

その他の必要な AWS リソースについては、要件をご覧ください。

AWS の構成

始める前に

このセクションを完了する前に:

  • AWS CLI をダウンロードしてインストールします。aws --version を実行してインストールを確定します。実行可能ファイルが見つからない場合は、PATHaws ツールを追加します。
  • aws configure を使用して、AWS IAM 認証情報と AWS リージョンを構成します。

管理ユーザーの権限

AWS 上の Anthos クラスタでは、管理サービスの作成者に特定の権限が付与されている必要があります。管理サービスまたはユーザー クラスタを作成する前に、要件を満たす 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. もう 1 つの鍵についても上記の手順を繰り返します。

コンソール

  1. AWS コンソールにログインします。
  2. [KMS] に移動し、サイドバーから [Customer managed keys] を選択します。
  3. [Create Key] をクリックします。
  4. デフォルトで選択されているオプションはそのままにします。
  5. 作成したら、リストから鍵を選択します。
  6. 鍵の ARN をコピーします。
  7. もう 1 つの鍵についても上記の手順を繰り返します。

Google Cloud の要件

組織が Google Cloud 環境に制約を適用すると、このドキュメントの一部の手順が正しく機能しない場合があります。その場合、パブリック IP アドレスやサービス アカウント キーを作成するようなタスクを完了できない場合があります。制約に関するエラーを返すリクエストを行う場合は、制約がある Google Cloud 環境でアプリケーションを開発する方法をご覧ください。

始める前に

  • AWS 上の Anthos クラスタ環境に接続する Google Cloud プロジェクトで API を有効にするには、Google アカウントにプロジェクト オーナーの権限があることを確認します。 次のセクションでは、Anthos clusters on AWS のサービス アカウントを作成する場合にのみオーナー権限を使用します。

  • Cloud SDK をインストールします。

  • Google Cloud プロジェクトで Anthos API を有効にする必要があります。この API を有効にすると、Cloud プロジェクトで他の Anthos 機能を使用できるようになります。

AWS 上の Anthos クラスタのサービス アカウントを作成する

このセクションでは、AWS 上の Anthos クラスタ用に 3 つの IAM サービス アカウントとキーを作成します。これらのサービス アカウントについては、次の一覧をご覧ください。

名前 ロール 説明
management-sa gkehub.admin,
serviceusage.serviceUsageViewer
Hub のメンバーシップを管理し、Google Cloud APIs が有効であることを確認する権限。
hub-sa gkehub.connect ユーザー クラスタと Hub の間の接続を設定する権限。
node-sa storage.objectViewer Container Registry へのアクセス権。

コマンドライン

  1. gcloud コマンドライン ツールで認証します。

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

    cloud.google.com にアクセスして、Google アカウントで認証するように 2 回求められます。

  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. Hub サービス アカウントにロールを付与します。

    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
    

コンソール

  1. Google Cloud Console API ライブラリ ページを開きます。
  2. 画面上部にあるプルダウンからプロジェクトを選択します。
  3. 次の API を見つけて有効にします。

    • Anthos
    • Cloud Resource Manager
    • Cloud Storage
    • Cloud Logging
    • Google Cloud Storage JSON API
    • GKE Hub
    • GKE Connect API
    • Service Usage
    • Stackdriver
    • Stackdriver Monitoring
  4. [サービス アカウント] ページを開きます。

  5. 次に、サービス アカウントを作成し、management-sa サービス アカウントにロールを割り当てます。

    1. [サービス アカウントを作成] をクリックします。
    2. アカウント管理サービス アカウントに名前を付けて、[作成] をクリックします。[このサービス アカウントにプロジェクトへのアクセスを許可する] 画面が表示されます。
    3. GKE HUB 管理者ロールと Service Usage 閲覧者ロールを追加します。
    4. [続行] をクリックします。[ユーザーにこのサービス アカウントへのアクセスを許可] 画面が表示されます。
    5. [完了] をクリックします。[プロジェクトのサービス アカウント] 画面が表示されます。
    6. サービス アカウントの Email を含む以下のような行を探します。management-sa@project_id.iam.gserviceaccount.com
    7. サービス アカウントの操作メニューをクリックし、[鍵を管理] を選択します。
    8. [キーを追加] プルダウン メニューをクリックします。
    9. [新しいキーを作成] を選択します。
    10. 鍵のタイプとして [JSON] を選択し、[作成] をクリックします。ブラウザでサービス アカウント キーをダウンロードします。
    11. ファイル management-key.json の名前を変更します。
  6. 次に、サービス アカウントを作成し、hub-sa サービス アカウントにロールを割り当てます。

    1. [サービス アカウントを作成] をクリックします。
    2. アカウント ハブ サービス アカウントに名前を付けて、[作成] をクリックします。[このサービス アカウントにプロジェクトへのアクセスを許可する] 画面が表示されます。
    3. GKE Hub 接続エージェント ロールを追加します。
    4. [続行] をクリックします。[ユーザーにこのサービス アカウントへのアクセスを許可] 画面が表示されます。
    5. [完了] をクリックします。[プロジェクトのサービス アカウント] 画面が表示されます。
    6. サービス アカウントの Email を含む以下のような行を探します。hub-sa@project_id.iam.gserviceaccount.com
    7. サービス アカウントの操作メニューをクリックし、[鍵を管理] を選択します。
    8. [キーを追加] プルダウン メニューをクリックします。
    9. [新しいキーを作成] を選択します。
    10. 鍵のタイプとして [JSON] を選択し、[作成] をクリックします。ブラウザでサービス アカウント キーをダウンロードします。
    11. ファイル hub-key.json の名前を変更します。
  7. 次に、サービス アカウントを作成し、node-sa サービス アカウントにロールを割り当てます。

    1. [サービス アカウントを作成] をクリックします。
    2. アカウント ノード サービス アカウントに名前を付けて、[作成] をクリックします。[このサービス アカウントにプロジェクトへのアクセスを許可する] 画面が表示されます。
    3. Storage オブジェクト閲覧者ロールを追加します。
    4. [完了] をクリックします。[プロジェクトのサービス アカウント] 画面が表示されます。
    5. サービス アカウントの Email を含む以下のような行を探します。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 コマンドライン ツールが呼び出されます。

Anthos clusters on AWS には、v0.14.3 より後のバージョンの Terraform が必要です。次のコマンドで Terraform のバージョンを確認できます。

terraform version

v0.14.3 以降をお持ちでない場合は、Terraform をダウンロードしてインストールしてから、管理サービスを作成してください。

Terraform のアップグレード

AWS に Anthos クラスタをインストールした後に Terraform をアップグレードするには、すべてのマイナー バージョンで Terraform バイナリをアップグレードする必要があります。

たとえば、Terraform を v0.12.x から v0.14.x にアップグレードする場合は、v0.13.x を一時的にインストールする必要があります。v0.13.x をインストールしたら、anthos-gke aws management initanthos-gke aws management apply を実行します。AWS の Anthos クラスタは構成を更新します。その後、v0.14.x にアップグレードできます。

Kubernetes

AWS 上の Anthos クラスタでは、kubectl バージョン 1.17 以降が必要です。kubectl のバージョンは、次のコマンドで確認できます。

kubectl version --client -o yaml | grep gitVersion

1.17 以降を使用していない場合は、kubectl の新しいバージョンをインストールします。

次のステップ