このページでは、スクリプトで使用可能な引数について説明し、スクリプトがプロジェクトと GKE クラスタに加える変更について詳しく説明します。
オプション
-p|--project_id CLUSTER_PROJECT_ID
- クラスタが作成されたプロジェクト ID。
-n|--cluster_name CLUSTER_NAME
- クラスタの名前。
-l|--cluster_location CLUSTER_LOCATION
- クラスタが作成されたゾーン(シングルゾーン クラスタの場合)またはリージョン(リージョン クラスタの場合)のいずれか。
-m|--mode {install|migrate|upgrade}
--mode install
は、Istio からの新規インストール、アップグレード、移行に使用できます。アップグレードや移行に--mode install
を使用すると、クラスタ上のコントロール プレーンのバージョンに関係なく、install_asm
によってアップグレードや移行が可能になります。migrate
フラグとupgrade
フラグを指定すると、以前のマイナー バージョンまたは以前のパッチ バージョンからのアップグレードまたは移行のみが許可されます。アップグレードまたは移行に
--mode install
を使用する場合は、クラスタで現在有効になっているものと同じ認証局(CA)を指定してください。CA を変更すると、ダウンタイムが発生します。--upgrade
フラグを使用すると、CA を変更できなくなります。これにより、意図しないダウンタイムを回避できます。Istio から移行する場合は、CA を変更して、Anthos Service Mesh 認証局(Mesh CA)を有効にできます。Mesh CA への移行のダウンタイムをスケジューリングできない場合でも、Mesh CA への移行パスがありますが、追加の手順が必要です。詳細については、Mesh CA への移行をご覧ください。
-c|--ca {mesh_ca|citadel}
新しいインストールに、Mesh CA を使用したい場合は、スクリプトのデフォルトが Mesh CA のため、このオプションを含める必要はありません。アップグレードの場合、スクリプトにより CA の変更が許されないため、このオプションを含める必要はありません。移行の場合は、
citadel
かmesh_ca
を指定します。移行のダウンタイムをスケジューリングできる場合は、mesh_ca
を使用することをおすすめします。使用する CA についての詳細は、認証局の選択をご覧ください。Istio CA を使用するときに指定する必要がある他のオプションについては、Istio CA カスタム証明書のオプションをご覧ください。--co|--custom_overlay YAML_FILE
IstioOperator
カスタム リソース(CR)YAML ファイルの名前。デフォルトで有効になっていない機能を有効にします。スクリプトが YAML ファイルの場所を特定できる必要があるため、スクリプトと同じディレクトリにファイルを置くか、相対パスを指定します。複数のファイルを追加するには、--co|--custom_overlay
とファイル名を指定します。例:--co overlay_file1.yaml --co overlay_file2.yaml --co overlay_file3.yaml
-o|--option OPTION_FILE
オプション機能を有効にする
IstioOperator
CR を含むanthos-service-mesh
パッケージの YAML ファイル名。こうしたファイルのいずれかを含める場合は、最初にanthos-service-mesh
パッケージをダウンロードする必要はありません。また、.yaml
拡張子は指定しないでください。いずれかのファイルを変更する必要がある場合は、anthos-service-mesh
パッケージをダウンロードして変更を加え、--custom_overlay
オプションを使用します。複数のファイルを追加するには、-o|--option
とファイル名を指定します(例:-o option_file1 -o option_file2 -o option_file3
)。-D|--output_dir DIR_PATH
指定されていない場合、このスクリプトは、Anthos Service Mesh のインストールに必要なファイルや構成をダウンロードする一時ディレクトリを作成します。代わりにディレクトリへの相対パスを指定するには、
--output-dir
フラグを指定します。完了すると、指定したディレクトリにはasm
サブディレクトリとistio-1.10.6-asm.2
サブディレクトリが含まれます。asm
ディレクトリには、インストールの構成が含まれます。istio-1.10.6-asm.2
ディレクトリには、istioctl
、サンプル、マニフェストが含まれるインストール ファイルの抽出コンテンツが含まれます。--output-dir
を指定して、ディレクトリに必要なファイルがすでに含まれている場合、スクリプトは再度ダウンロードを行わず、これらのファイルを使用します。-r|--revision_name REVISION NAME>
リビジョン ラベルは、コントロール プレーンで設定されている Key-Value ペアです。リビジョン ラベルキーは常に
istio.io/rev
になります。デフォルトでは、スクリプトは Anthos Service Mesh のバージョンに基づいてリビジョン ラベルの値を設定します(例:asm-1106-2
)。デフォルト値をオーバーライドして独自の値を指定する場合は、このオプションを指定します。REVISION NAME
引数は DNS-1035 のラベルにします。ラベルには小文字の英数字または-
を使用し、ラベルの先頭は英字に、ラベルの最後は英数字にする必要があります(例:my-name'
、abc-123
)。検証に使用される正規表現は'[a-z]([-a-z0-9]*[a-z0-9])?')
です。-s|--service_account ACCOUNT
Anthos Service Mesh のインストールに使用されるサービス アカウントの名前。指定しない場合は、現在の
gcloud
構成にある有効なユーザー アカウントが使用されます。有効なユーザー アカウントを変更する必要がある場合は、gcloud auth login を実行します。-k|--key_file FILE_PATH
サービス アカウントの鍵ファイル。サービス アカウントを使用していない場合は、このオプションを省略します。
Citadel カスタム証明書のオプション
--ca citadel
を指定してカスタム CA を使用する場合は、次のオプションを指定します。
--ca_cert FILE_PATH
: 中間証明書--ca_key FILE_PATH
: 中間証明書の鍵--root_cert FILE_PATH
: ルート証明書--cert_chain FILE_PATH
: 証明書チェーン
詳細については、既存の CA 証明書への接続をご覧ください。
イネーブルメント フラグ
--enable
で始まるフラグによって、スクリプトは必要な Google API を有効にし、必要な Identity and Access Management(IAM)権限を設定して、クラスタを更新します。必要に応じて、スクリプトを実行する前に、プロジェクトとクラスタを自分で更新することもできます。詳細については、マルチ プロジェクト インストール ガイドのプロジェクトの設定とクラスタの設定セクションをご覧ください。これらのフラグはすべて --only_validate
と互換性がなく、この場合はスクリプトでエラーが発生して終了します。
-e|--enable_all
- 以下で説明する個々の有効化の操作をすべてスクリプトで実行できるようにします。
--enable_cluster_roles
- スクリプトを実行している GCP ユーザーまたはサービス アカウントをクラスタの
cluster-admin
ロールにバインドできるようにします。このスクリプトは、gcloud config get-value core/account
コマンドからユーザー アカウントを特定します。ユーザー アカウントを使用してスクリプトをローカルで実行する場合は、必ずgcloud auth login
コマンドを呼び出してからスクリプトを実行してください。ユーザー アカウントを変更する必要がある場合は、gcloud config set core/account GCP_EMAIL_ADDRESS
コマンドを実行します。ここで、GCP_EMAIL_ADDRESS は、Google Cloud へのログインに使用するアカウントです。 --enable_cluster_labels
- スクリプトで、必要なクラスタラベルを設定できるようにします。
--enable_gcp_components
スクリプトで、次の必要な Google Cloud マネージド サービスとコンポーネントを有効にできるようにします。
Workload Identity。GKE アプリケーションが Google Cloud サービスに安全にアクセスできるようになります。
--enable_gcp_apis
スクリプトで、すべての必要な Google API を有効にできるようにします。
--enable_gcp_iam_roles
スクリプトで、必要な IAM 権限を設定できるようにします。
--enable_registration
スクリプトでクラスタが所属するプロジェクトにそのクラスタを登録できるようにします。このフラグを指定しない場合は、クラスタの登録の手順に沿ってクラスタを手動で登録してください。他のイネーブルメント フラグとは異なり、
--enable_registration
は、クラスタ登録を必要とするオプション(--option vm
や--option hub-meshca
など)を指定した場合に--enable_all
にのみ含まれます。こうしたオプションを指定しない場合、このフラグは個別に指定する必要があります。
その他のフラグ
--dry_run
- コマンドを出力しますが、実行しません。
--only_validate
- 検証を実行しますが、プロジェクトやクラスタは更新しません。また、Anthos Service Mesh はインストールしません。このフラグはイネーブルメント フラグと互換性がありません。任意のイネーブルメント フラグとともに
--only_validate
を指定すると、スクリプトはエラーで終了します。 --print_config
- Anthos Service Mesh をインストールする代わりに、コンパイル済みのすべての YAML を標準出力(stdout)に出力します。通常は stdout に出力される場合でも、他のすべての出力が標準エラー(stderr)に書き込まれます。このフラグを指定すると、すべての検証と設定がスキップされます。
--disable_canonical_service
- デフォルトでは、このスクリプトは Canonical Service コントローラをクラスタにデプロイします。スクリプトでコントローラをデプロイしない場合は、
--disable_canonical_service
を指定します。詳細については、Canonical Service コントローラの有効化と無効化をご覧ください。 -h|--help
- オプション、フラグ、終了を説明するヘルプ メッセージを表示します。
-v|--verbose
- スクリプトが実行されると、次に実行されるコマンドが出力されます。
--verbose
フラグを指定すると、実行後にコマンドが出力されます。 --version
install_asm
のバージョンを出力して終了します。このコマンドでバージョンが出力されない場合は、install_asm_1.10
の最新バージョンをダウンロードします。
スクリプトについて
スクリプトは、安全な Cloud Source Repositories のロケーションからダウンロードしますが、GitHub からも入手できます。ダウンロードする前にソースコードを見ておくと、スクリプトの処理内容を確認できます。このスクリプトは、プロジェクトとクラスタが Anthos Service Mesh 要件を満たしていることを検証し、プロジェクトとクラスタの構成に手動で行うすべての手順を自動化します。その後、istioctl install
コマンドを使用して Anthos Service Mesh をインストールします。
Anthos Service Mesh 1.10.6 では、release-1.10-asm
ブランチで install_asm
スクリプトのバージョンを使用します。バージョニングとリリースのプロセスについては、バージョニング / リリースをご覧ください。
検証
install_asm
スクリプトは次のことを確認します。
- パラメータ値として入力したプロジェクト ID、クラスタ名、クラスタのロケーションが有効であること。
- クラスタが最低限必要なマシンタイプとノード数を満たしていること。
プロジェクトの設定
必要なロール
--enable_all
フラグまたは --enable_gcp_iam_roles
フラグを含めると、スクリプトにより必要な IAM 権限が設定されます。
必要な Google API
--enable_all
または --enable_apis
フラグを含めると、スクリプトにより必要な API が有効になります。
クラスタの設定
--enable_all
フラグ、またはよりきめ細かい下のイネーブルメント フラグのいずれかが含まれると、スクリプトによりクラスタで次の更新が行われます。
クラスタの更新 | フラグ |
---|---|
Workload Identity を有効にすると、GKE アプリケーションが Google Cloud サービスに安全にアクセスできるようになります。 | --enable_gcp_components |
GKE で Cloud Monitoring と Cloud Logging を有効にします。 | --enable_gcp_components |
クラスタで mesh_id ラベルを設定します。これは、Google Cloud コンソールの Anthos Service Mesh ページに指標を表示するために必要です。 |
--enable_cluster_labels |
asmv=asm-1106-2 のようなラベルを設定し、スクリプトによってクラスタが変更されていることを示します。 |
--enable_cluster_labels |
スクリプトを実行している GCP ユーザーまたはサービス アカウントを、クラスタの cluster-admin ロールにバインドします。 | --enable_cluster_roles |