プロジェクトとクラスタを設定する
asmcli を使用して Cloud Service Mesh をインストールするときに、--enable_all フラグ、またはより詳細な有効化フラグを含めると、プロジェクトとクラスタを自動的に構成できます。asmcli による変更ではなく自分で設定を行う場合は、このページの手順に沿って進めてください。
以前のバージョンの Cloud Service Mesh がインストールされている場合は、最新の Cloud Service Mesh バージョンに asmcli を使用してアップグレードする前に、プロジェクトまたはクラスタを変更する必要はありません。
デフォルトでは、asmcli は istio-ingressgateway をインストールしません。コントロール プレーンとゲートウェイを個別にデプロイして管理することをおすすめします。Cloud Service Mesh は、ゲートウェイ デプロイの自動インジェクションをサポートしているため、Cloud Service Mesh のアップグレードは容易に行うことができます。Cloud Service Mesh をアップグレードした後、サービスと同じようにゲートウェイを再起動して、新しいコントロール プレーンの構成を取得します。詳細については、ゲートウェイのインストールとアップグレードをご覧ください。
始める前に
- 前提条件と要件( Google Cloud以外の環境、GKE)を確認する
- インストール( Google Cloud以外の環境、GKE)またはアップグレードを計画する
- 必要なツールをインストールする( Google Cloudの外部、GKE)
プロジェクトを設定する
- クラスタが作成されたプロジェクトのプロジェクト ID を取得します。 - gcloud- 次のコマンドを実行します。 - gcloud projects list- コンソール- Google Cloud コンソールで [ダッシュボード] ページに移動します。 
- ページの上部にあるプルダウン リストをクリックします。表示された [選択元] ウィンドウで、プロジェクトを選択します。 - プロジェクト ID は、プロジェクト ダッシュボードの [プロジェクト情報] カードに表示されます。 
 
- プロジェクト ID を使用して、ワークロード プールの環境変数を作成します。 - export WORKLOAD_POOL=PROJECT_ID.
- 必要な Identity and Access Management(IAM)のロールを設定します。プロジェクト オーナーの場合は、インストールを完了するために必要なすべての権限が付与されます。プロジェクト オーナーでない場合は、次の IAM ロールを付与する担当者が必要になります。次のコマンドの - PROJECT_IDは、前の手順のプロジェクト ID に置き換え、- GCP_EMAIL_ADDRESSは Google Cloudへのログインに使用するアカウントに置き換えます。- ROLES=( 'roles/servicemanagement.admin' \ 'roles/serviceusage.serviceUsageAdmin' \ 'roles/meshconfig.admin' \ 'roles/compute.admin' \ 'roles/container.admin' \ 'roles/resourcemanager.projectIamAdmin' \ 'roles/iam.serviceAccountAdmin' \ 'roles/iam.serviceAccountKeyAdmin' \ 'roles/gkehub.admin') for role in "${ROLES[@]}" do gcloud projects add-iam-policy-binding PROJECT_ID \ --member "user:GCP_EMAIL_ADDRESS" \ --role="$role" done- asmcliの実行時に- --enable_allフラグまたは- --enable_gcp_iam_rolesフラグを指定すると、必要な IAM ロールが自動的に設定されます。
- 必要な Google API を有効にします。 - gcloud services enable \ --project=PROJECT_ID \ mesh.googleapis.com- このコマンドは、 - mesh.googleapis.comに加えて次の API も有効にします。- API - 目的 - 無効化が可能か - meshconfig.googleapis.com- Cloud Service Mesh は、Mesh Configuration API を使用して、メッシュから Google Cloudに構成データをリレーします。また、Mesh Configuration API を有効にすると、 Google Cloud コンソールの Cloud Service Mesh のページにアクセスして、Cloud Service Mesh 認証局を使用できるようになります。 - × - meshca.googleapis.com- マネージド Cloud Service Mesh で使用される Cloud Service Mesh 認証局に関連します。 - × - container.googleapis.com- Google Kubernetes Engine(GKE)クラスタを作成するために必要です。 - × - gkehub.googleapis.com- メッシュをフリートとして管理するために必要です。 - × - monitoring.googleapis.com- メッシュ ワークロードのテレメトリーをキャプチャするために必要です。 - × - stackdriver.googleapis.com- Service UI を使用するために必要です。 - × - opsconfigmonitoring.googleapis.com- Google Cloud 外のクラスタで Service UI を使用するために必要です。 - × - connectgateway.googleapis.com- マネージド Cloud Service Mesh コントロール プレーンがメッシュ ワークロードにアクセスできるようにするために必要です。 - ○* - trafficdirector.googleapis.com- 高可用性でスケーラブルなマネージド コントロール プレーンを実現します。 - ○* - networkservices.googleapis.com- 高可用性でスケーラブルなマネージド コントロール プレーンを実現します。 - ○* - networksecurity.googleapis.com- 高可用性でスケーラブルなマネージド コントロール プレーンを実現します。 - ○* - API の有効化に数分かかることがあります。API が有効になると、次のような出力が表示されます。 - Operation "operations/acf.601db672-88e6-4f98-8ceb-aa3b5725533c" finished successfully. - asmcliの実行時に- --enable_allフラグまたは- --enable_apisフラグを指定すると、必要な API が自動的に有効にされます。
クラスタを設定する
--enable_all フラグ、またはより詳細な有効化フラグのいずれかを指定すると、asmcli によってクラスタが設定されます。
- プロジェクトを初期化してインストールの準備をします。次のコマンドでサービス アカウントを作成し、サイドカー プロキシなどのデータプレーン コンポーネントがプロジェクトのデータとリソースに安全にアクセスできるようにします。次のコマンドで、 - FLEET_PROJECT_IDをフリート ホスト プロジェクトに置き換えます。- curl --request POST \ --header "Authorization: Bearer $(gcloud auth print-access-token)" \ --header "Content-Type: application/json" \ --data '{"workloadIdentityPools":["FLEET_PROJECT_ID.hub.id.goog","FLEET_PROJECT_ID.","PROJECT_ID."]}' \ "https://meshconfig.googleapis.com/v1alpha1/projects/PROJECT_ID:initialize"- コマンドを実行すると、空の中かっこ - {}が返されます。
- Google Cloud クラスタ上の GKE の場合は、Google Cloud CLI のデフォルトのゾーンまたはリージョンを設定します。ここでデフォルトを設定しない場合、このページの - gcloud container clustersコマンドに- --zoneオプションまたは- --regionオプションを指定してください。- シングルゾーン クラスタがある場合は、デフォルト ゾーンを設定します。 - gcloud config set compute/zone CLUSTER_LOCATION
- リージョン クラスタがある場合は、デフォルト リージョンを設定します。 - gcloud config set compute/region CLUSTER_LOCATION
 
- Google Cloud クラスタ上の GKE の場合は、Workload Identity を有効にします。 - gcloud container clusters update CLUSTER_NAME \ --project=PROJECT_ID \ --workload-pool=${WORKLOAD_POOL}- Workload Identity の有効化には、最長で 10~15 分ほどかかることがあります。 
- Google Cloud クラスタ上の GKE の場合は、GKE 上の Cloud Monitoring と Cloud Logging を有効にします。 - gcloud container clusters update CLUSTER_NAME \ --project=PROJECT_ID \ --enable-stackdriver-kubernetes
これで、プロジェクトとクラスタについて、asmcli を使用して新規インストールを行う準備が整いました。