GKE クラスタを設定する

このページでは、Anthos Service Mesh で必要なオプションによって既存の GKE クラスタを設定する方法について説明します。別の Google Cloud プロジェクトのクラスタを Anthos Service Mesh に追加するには、そのクラスタが共有 Virtual Private Cloud(VPC)内に存在している必要があります。詳細については、共有 VPC を使用したクラスタの設定をご覧ください。

始める前に

クラスタの設定を開始する前に、次のことが完了していることを確認してください。

既存のクラスタの設定

  1. 次の環境変数を作成します。

    • クラスタ名を設定します。

      export CLUSTER_NAME=YOUR_CLUSTER_NAME

    • CLUSTER_LOCATION をクラスタのゾーンまたはリージョンに設定します。

      export CLUSTER_LOCATION=YOUR_ZONE_OR_REGION

    • ワークロード プールを設定します。

      export WORKLOAD_POOL=${PROJECT_ID}.svc.id.goog

    • メッシュ ID を設定します。

      export MESH_ID="proj-${FLEET_PROJECT_NUMBER}"

  2. Google Cloud CLI のデフォルトのゾーンまたはリージョンを設定します。ここでデフォルトを設定しない場合、このページの gcloud container clusters コマンドに --zone オプションまたは --region オプションを指定してください。

    • シングルゾーン クラスタがある場合は、デフォルト ゾーンを設定します。

      gcloud config set compute/zone ${CLUSTER_LOCATION}
    • リージョン クラスタがある場合は、デフォルト リージョンを設定します。

      gcloud config set compute/region ${CLUSTER_LOCATION}

    ヒント: 今後のシェル環境の設定を容易にするために、各環境変数の export ステートメントをコピーして、新しいシェルの起動時に source するシンプルなシェル スクリプトに貼り付けることができます。スクリプトにデフォルト値を設定する gcloud コマンドを追加することもできます。または、gcloud init を使用して、名前付きの gcloud 構成を作成して有効にすることもできます。

  3. クラスタに mesh_id ラベルを設定します。クラスタの既存のラベルを残す場合は、mesh_id ラベルの追加時にそれらのラベルを含める必要があります。

    1. クラスタに既存のラベルがあるかどうかを確認するには:

      gcloud container clusters describe ${CLUSTER_NAME} \
        --project ${PROJECT_ID}

      出力で resourceLabels フィールドを探します。ラベルは、resourceLabels フィールドごとに別々の行に格納されます。次に例を示します。

      resourceLabels:
        csm: ''
        env: dev
        release: stable

      出力に csm ラベルがある場合、保持する必要はありません。mesh_id ラベルは csm ラベルに代わります。

      利便性を考えて、環境変数にラベルを追加することもできます。以下の例の YOUR_EXISTING_LABELS は、クラスタに存在するラベルのカンマ区切りのリスト(KEY=VALUE 形式、たとえば env=dev,release=stable)で置き換えます。

      export EXISTING_LABELS="YOUR_EXISTING_LABELS"
    2. mesh_id ラベルを設定します。

      • クラスタの既存のラベルを残す場合は、mesh_id と既存のラベルでクラスタを更新します。

        gcloud container clusters update ${CLUSTER_NAME} \
          --project ${PROJECT_ID} \
          --update-labels=mesh_id=${MESH_ID},${EXISTING_LABELS}
      • クラスタに既存のラベルがない場合は、mesh_id ラベルだけでクラスタを更新します。

        gcloud container clusters update ${CLUSTER_NAME} \
          --project=${PROJECT_ID} \
          --update-labels=mesh_id=${MESH_ID}
  4. Workload Identity を有効にします。

    gcloud container clusters update ${CLUSTER_NAME} \
       --project=${PROJECT_ID} \
       --workload-pool=${WORKLOAD_POOL}

    Workload Identity の有効化には、最長で 10~15 分ほどかかることがあります。

  5. GKE で Cloud Monitoring と Cloud Logging を有効にします。

    gcloud container clusters update ${CLUSTER_NAME} \
       --project=${PROJECT_ID} \
       --enable-stackdriver-kubernetes

次のステップ