asmcli リファレンス
概要
asmcli は、Cloud Service Mesh のインストールまたはアップグレードに使用できる Google 提供のツールです。asmcli を使用すると、プロジェクトとクラスタは次のように構成されます。
- Google Cloud プロジェクトで必要な Identity and Access Management(IAM)権限を付与します。
- Google Cloud プロジェクトで必要な Google API を有効にします。
- メッシュを識別するラベルをクラスタに設定します。
- サービス アカウントを作成し、サイドカー プロキシなどのデータプレーン コンポーネントがプロジェクトのデータとリソースに安全にアクセスできるようにします。
- クラスタを登録します(まだ登録されていない場合)。
asmcli でプロジェクトとクラスタを構成する場合は、--enable_all フラグのみを指定します。asmcli のオプションとフラグの詳細については、asmcli リファレンスをご覧ください。
asmcli が、プロジェクトとクラスタの情報を使用して YAML ファイルを構成します。これらの構成ファイルは、Cloud Service Mesh コントロール プレーンのインストールで必要になります。
Cloud Service Mesh と Istio を初めて使用する場合は、対応プラットフォームに進んでください。次のセクションでは、既存の Cloud Service Mesh を 1.24にアップグレードする方法について説明します。
asmcli への移行
asmcli は、istioctl install と install_asm の代わりに使用されます。Cloud Service Mesh 1.11 では以前のツールを引き続き使用できますが、それらのツールは非推奨となり、Cloud Service Mesh 1.12 以降ではサポートされなくなります。asmcli を使用するようにツールとスクリプトを更新してください。
すべてのクラスタは、フリートに登録されている必要があります。詳しくは、フリートの要件をご覧ください。
install_asm からの移行
install_asm と asmcli はよく似ていているように見えるかもしれませんが、次の点が大きく異なります。
- 新規インストールとアップグレードには - asmcli installを使用します。これには、- install_asmのような- --modeオプションはありません。- asmcli installを実行すると、クラスタに既存のコントロール プレーンが存在するかどうかが確認されます。既存のコントロール プレーンがない場合、- asmcliは Cloud Service Mesh をインストールします。クラスタに既存のコントロール プレーン(Cloud Service Mesh コントロール プレーンまたはオープンソースの Istio コントロール プレーン)がある場合:- 既存のコントロール プレーンのリビジョン ラベルが、新しいコントロール プレーンのリビジョン ラベルと一致しない場合、 - asmcliはカナリア アップグレードを実行します。
- コントロール プレーンのリビジョン ラベルが一致している場合、 - asmcliはインプレース アップグレードを実行します。
 
- asmcliのオプションとフラグのほとんどは- install_asmと同じように機能します。
istioctl install からの移行
istioctl install に慣れていて、-f コマンドライン引数で IstioOperator YAML ファイルを渡してコントロール プレーンを構成している場合は、--custom_overlay オプションを使用してファイルを asmcli に渡すことができます。Cloud Service Mesh のドキュメントでは、これらのファイルをオーバーレイ ファイルと呼んでいます。
対応プラットフォーム
対応プラットフォームでの Cloud Service Mesh のインストールは、asmcli によって構成またはアップグレードできます。
ただし、すべての機能が Google Cloud以外のプラットフォームで利用できるわけではありません。詳細については、クラスタ内コントロール プレーンでサポートされている機能をご覧ください。
asmcli リファレンス
このセクションでは、asmcli で使用可能な引数について説明します。
オプション
クラスタの特定。クラスタを特定するには、次のオプションがあります。
GKE のみ
- -p|--project_id CLUSTER_PROJECT_ID
- クラスタが作成されたプロジェクト ID。
- -n|--cluster_name CLUSTER_NAME
- クラスタの名前。
- -l|--cluster_location CLUSTER_LOCATION
- クラスタが作成されたゾーン(シングルゾーン クラスタの場合)またはリージョン(リージョン クラスタの場合)のいずれか。
すべてのプラットフォーム
--kubeconfig KUBECONFIG_FILE
kubeconfig ファイルのフルパス。環境変数 $PWD はここでは機能しません。
--ctx|--context KUBE_CONTEXT
使用する kubeconfig コンテキスト。指定しない場合、asmcli でデフォルトのコンテキストが使用されます。
- -c|--ca {mesh_ca|gcp_cas|citadel}
- 相互 TLS 証明書の管理に使用する認証局(CA)。Cloud Service Mesh 認証局(Cloud Service Mesh 認証局)を使用するには - mesh_caを指定、Certificate Authority Service を使用するには- gcp_casを指定し、Istio CA を使用するには- citadelを指定します。マネージド Cloud Service Mesh は Istio CA をサポートしていません。詳しくは以下をご覧ください。
- --channel CLOUD_SERVICE_MESH_CHANNEL
- --channelを使用して特定の Cloud Service Mesh リリース チャンネルを指定すると、そのリリース チャンネルに関連付けられているコントロール プレーン リビジョンがプロビジョニングされます。たとえば- --channel rapid、- --channel regular、- --channel stableのように指定します。このフラグは、GKE Autopilot クラスタで特定の Cloud Service Mesh の機能を構成する場合に必要になります。
CSM リリースノートで説明されているように、マネージド Cloud Service Mesh では --channel オプションがサポートされなくなりました。リリース チャンネルは、GKE クラスタのリリース チャンネルに基づいて決定されます。詳細については、マネージド Cloud Service Mesh のリリース チャンネルをご覧ください。
- --co|--custom_overlay OVERLAY_FILE
- --custom_overlyを、- IstioOperatorカスタム リソースを含む YAML ファイル(オーバーレイ ファイルと呼ばれます)の名前とともに使用して、クラスタ内コントロール プレーンを構成します。オーバーレイ ファイルを指定すると、デフォルトで有効になっていない機能を有効にすることができます。マネージド Cloud Service Mesh は- IstioOperatorAPI をサポートしていないため、- --custom_overlayを使用してマネージド コントロール プレーンを構成することはできません。- asmcliはオーバーレイ ファイルを特定できる必要があるため、- asmcliと同じディレクトリに存在するか、相対パスを指定できる必要があります。複数のファイルを追加するには、- --co|--custom_overlayとファイル名を指定します。例:- --co overlay_file1.yaml --co overlay_file2.yaml --co overlay_file3.yaml
- --hub-registration-extra-flags HUB_REGISTRATION_EXTRA_FLAGS
- 接続された Amazon EKS クラスタを使用する場合、まだ登録されていない場合は --hub-registration-extra-flagsを使用してクラスタをフリートに登録します。
- -k|--key_file FILE_PATH
- サービス アカウントの鍵ファイル。サービス アカウントを使用していない場合は、このオプションを省略します。
- --network_id NETWORK_ID
- --network_idを使用して、- istio-systemNamespace に適用される- topology.istio.io/networkラベルを設定します。GKE の場合、- --network_idはデフォルトでクラスタのネットワーク名になります。その他の環境では、- defaultが使用されます。
- -o|--option OVERLAY_FILE
- asmcliが- anthos-service-meshリポジトリからダウンロードし、オプション機能を有効にするオーバーレイ ファイルの名前(- .yaml拡張子なし)。- --optionを使用するには、インターネット接続が必要です。- --optionオプションと- --custom_overlayオプションは似ていますが、動作がわずかに異なります。- オーバーレイ ファイルの設定を変更する必要がある場合は、 - --custom_overlayを使用します。
- --optionを使用して、オーバーレイ ファイルを変更する必要がない機能を有効にします。たとえば、サービスの監査ポリシーを構成します。
 - 複数のファイルを追加するには、 - -o|--optionとファイル名を指定します。例:- -o option_file1 -o option_file2 -o option_file3
- -D|--output_dir DIR_PATH
- 指定されていない場合、 - asmcliは、Cloud Service Mesh のインストールに必要なファイルや構成をダウンロードする一時ディレクトリを作成します。代わりにディレクトリへの相対パスを指定するには、- --output-dirフラグを指定します。完了すると、指定したディレクトリには- asmサブディレクトリと- istio-1.24.6-asm.12サブディレクトリが含まれます。- asmディレクトリには、インストールの構成が含まれます。- istio-1.24.6-asm.12ディレクトリには、- istioctl、サンプル、マニフェストが含まれるインストール ファイルの抽出コンテンツが含まれます。- --output-dirを指定して、ディレクトリに必要なファイルがすでに含まれている場合、- asmcliは再度ダウンロードを行わず、これらのファイルを使用します。
- --platform PLATFORM {gcp|multicloud}
- Kubernetes クラスタのプラットフォームまたはプロバイダ。デフォルトは - gcpです(GKE クラスタの場合)。他のすべてのプラットフォームでは、- multicloudを使用します。
- -r|--revision_name REVISION NAME
- リビジョン ラベルは、コントロール プレーンで設定されている Key-Value ペアです。リビジョン ラベルキーは常に - istio.io/revになります。デフォルトでは、- asmcliは Cloud Service Mesh のバージョンに基づいてリビジョン ラベルの値を設定します(例:- asm-1246-12)。デフォルト値をオーバーライドして独自の値を指定する場合は、このオプションを指定します。- REVISION NAME引数は、DNS-1035 ラベルである必要があります。名前は次の条件を満たす必要があります。- 最大文字数は 63 文字とする
- 小文字の英数字またはハイフン(-)のみを使用する
- 先頭が英字である
- 末尾が英数字である
 
検証に使用される正規表現は '[a-z]([-a-z0-9]*[a-z0-9])?' です。
- -s|--service_account ACCOUNT
- Cloud Service Mesh のインストールに使用されるサービス アカウントの名前。指定しない場合は、現在の gcloud構成にある有効なユーザー アカウントが使用されます。有効なユーザー アカウントを変更する必要がある場合は、gcloud auth login を実行します。
Istio CA カスタム証明書のオプション
--ca citadel を指定してカスタム CA を使用する場合は、次のオプションを指定します。
- --ca_cert FILE_PATH: 中間証明書
- --ca_key FILE_PATH: 中間証明書の鍵
- --root_cert FILE_PATH: ルート証明書
- --cert_chain FILE_PATH: 証明書チェーン
詳細については、既存の CA 証明書への接続をご覧ください。
イネーブルメント フラグ
--enable で始まるフラグによって、asmcli は必要な Google API を有効にし、必要な Identity and Access Management(IAM)権限を設定して、クラスタを更新します。必要に応じて、asmcli を実行する前に、プロジェクトとクラスタを自分で更新できます。すべてのイネーブルメント フラグに asmcli validate と互換性があるわけではありません。asmcli validate を有効にするときにイネーブルメント フラグを指定した場合、コマンドはエラーで終了します。
- -e|--enable_all
- 以下で説明する個々の有効化の操作をすべて asmcliで実行できるようにします。
- --enable_cluster_roles
- asmcliで、- asmcliを実行している Google Cloud ユーザーまたはサービス アカウントをクラスタの- cluster-adminロールにバインドできるようにします。- asmcliは、- gcloud config get core/accountコマンドからユーザー アカウントを特定します。ユーザー アカウントを使用して- asmcliをローカルで実行する場合は、必ず- gcloud auth loginコマンドを呼び出してから- asmcliを実行してください。ユーザー アカウントを変更する必要がある場合は、- gcloud config set core/account GCP_EMAIL_ADDRESSコマンドを実行します。ここで、GCP_EMAIL_ADDRESS は、 Google Cloudへのログインに使用するアカウントです。
- --enable_cluster_labels
- asmcliで、必要なクラスタラベルを設定できるようにします。
- --enable_gcp_components
- asmcliで、次の必要な Google Cloud マネージド サービスとコンポーネントを有効にできるようにします。- Workload Identity。GKE アプリケーションが Google Cloud サービスに安全にアクセスできるようになります。 
 
- --enable_gcp_apis
- asmcliで、すべての必要な Google API を有効にできるようにします。
- --enable_gcp_iam_roles
- asmcliで、必要な IAM 権限を設定できるようにします。
- --enable_meshconfig_init
- ユーザーに代わってスクリプトで meshconfig エンドポイントを初期化できるようにします。 - --enable_gcp_componentsと- --managedによって暗黙的に指定されます。
- --enable_namespace_creation
- asmcliがルートの- istio-system名前空間を作成できるようにします。
- --enable_registration
- asmcliでクラスタが所属するプロジェクトにそのクラスタを登録できるようにします。このフラグを指定しない場合は、クラスタの登録の手順に沿ってクラスタを手動で登録してください。他のイネーブルメント フラグとは異なり、- --enable_registrationは、クラスタ登録を必要とするオプション(- --option hub-meshcaなど)を指定した場合に- --enable_allにのみ含まれます。こうしたオプションを指定しない場合、このフラグは個別に指定する必要があります。
その他のフラグ
- --dry_run
- コマンドを出力しますが、実行しません。
- --fleet_id
- フリートのホスト プロジェクト ID を使用して、フリートにクラスタを登録します。Google Cloud 以外のクラスタでは、このフラグは必須です。Google Cloud クラスタに指定がない場合、デフォルトでクラスタのプロジェクト ID が設定されます。インストール前に --fleet_idを指定してasmcli installを実行できます。または、--enable-registrationフラグと--fleet-idフラグを渡してインストールの一環として実行できます。この設定は、構成後に変更することはできません。
- --managed
- 非推奨。クラスタ内にインストールするのではなく、リモートのマネージド コントロール プレーンをプロビジョニングします。
- --offline
- 出力ディレクトリに事前にダウンロードされたパッケージを使用して、オフライン インストールを実行します。ディレクトリが指定されていない場合、または必要なファイルが含まれていない場合は、スクリプトがエラーで終了します。
- --only_enable
- 指定した手順で現在のユーザーまたはクラスタを設定しますが、何もインストールされません。
- --only_validate
- 検証を実行しますが、プロジェクトやクラスタは更新しません。また、Cloud Service Mesh はインストールしません。このフラグはイネーブルメント フラグと互換性がありません。任意のイネーブルメント フラグとともに --only_validateを指定すると、asmcliはエラーで終了します。
- --print_config
- Cloud Service Mesh をインストールする代わりに、コンパイル済みのすべての YAML を標準出力(stdout)に出力します。通常は stdout に出力される場合でも、他のすべての出力が標準エラー(stderr)に書き込まれます。このフラグを指定すると、asmcliですべての検証と設定がスキップされます。
- --disable_canonical_service
- デフォルトでは、asmcliは Canonical Service コントローラをクラスタにデプロイします。asmcliでコントローラをデプロイしない場合は、--disable_canonical_serviceを指定します。詳細については、Canonical Service コントローラの有効化と無効化をご覧ください。
- -h|--help
- オプション、フラグ、終了を説明するヘルプ メッセージを表示します。
- --use_managed_cni
- マネージド CNI を使用します。このフラグが渡されない場合、asmcliは静的 CNI マニフェストを適用します。
- --use_vpcsc
- 組織でプロジェクトに VPC Service Controls を適用している場合は、--use_vpcscフラグを使用してマネージド Cloud Service Mesh を構成する必要があります。そうしないと、セキュリティ コントロールが失敗します。
- -v|--verbose
- asmcliを実行すると、次に実行するコマンドが出力されます。- --verboseフラグを指定すると、- asmcliによって実行後にコマンドが出力されます。
- --version
- asmcliのバージョンを出力して終了します。最新のバージョンがない場合は、最新バージョンの- asmcli_1.24をダウンロードできます。