本页面介绍脚本可用的参数,并提供有关脚本对项目和 GKE 集群所做的更改的详细信息。
选项
-p|--project_id CLUSTER_PROJECT_ID
- 在其中创建集群的项目的 ID。
-n|--cluster_name CLUSTER_NAME
- 集群的名称。
-l|--cluster_location CLUSTER_LOCATION
- 在其中创建集群的区域(对于单区域集群)或地区(对于地区级集群)。
-m|--mode {install|migrate|upgrade}
- 如果要新安装 Anthos Service Mesh,请输入
install
。如果您是从 Istio 迁移,请输入migrate
。输入upgrade
可将现有的 Anthos Service Mesh 安装升级到新版本。 -c|--ca {mesh_ca|citadel}
- 对于新安装,如果您想使用 Mesh CA,则无需添加此选项,因为脚本默认为 Mesh CA。对于升级,您无需添加此选项,因为脚本不允许您更改 CA。对于迁移,请指定
citadel
或mesh_ca
。如果您可以为迁移安排停机时间,我们建议您使用mesh_ca
。如需详细了解应使用哪个 CA,请参阅选择证书授权机构。如需了解使用 Citadel 时必须指定的其他选项,请参阅 Citadel 的自定义证书选项。 --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
- YAML 文件名来自
anthos-service-mesh
软件包,其包含IstioOperator
CR,可启用可选功能。添加其中某个文件时,您无需先下载anthos-service-mesh
软件包,也无需指定.yaml
扩展名。如需修改任何文件,请下载anthos-service-mesh
软件包、进行更改,然后使用--custom_overlay
选项。如需添加多个文件,请指定-o|--option
和文件名,例如:-o option_file1 -o option_file2 -o option_file3
-s|--service_account ACCOUNT
- 用于安装 Anthos Service Mesh 的服务账号的名称。如果未指定,则使用当前
gcloud
配置中的活动用户账号。如果您需要更改活跃用户账号,请运行 gcloud auth login。 -k|--key_file FILE_PATH
- 服务账号的密钥文件。如果您未使用服务账号,请忽略此选项。
-D|--output_dir DIR_PATH
- 如果未指定,脚本将创建一个临时目录,用于下载安装 Anthos Service Mesh 所需的文件和配置。指定
--output-dir
标志以改为指定使用现有目录。完成后,指定的目录包含asm
和istio-1.8.6-asm.8
子目录。asm
目录包含安装的配置。istio-1.8.6-asm.8
目录包含安装文件的解压缩内容,其中包含istioctl
、示例和清单。
Citadel 自定义证书选项
如果指定了 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
不包含在--enable_all
中。您需要单独指定此标志。
其他标志
-v|--verbose
- 在执行前后输出命令。
--dry_run
- 输出命令,但不执行这些命令。
--only_validate
- 运行验证,但不更新项目或集群,并且不安装 Anthos Service Mesh。此标志与启用标志不兼容。如果您使用任何启用标志指定
--only_validate
,脚本会终止并显示错误。 --print_config
- 请将所有已编译的 YAML 输出到标准输出 (stdout),而不是安装 Anthos Service Mesh。所有其他输出都会写入标准错误 (stderr),即使它通常会转到 stdout 也是如此。当您指定此标志时,该脚本会跳过所有验证和设置操作。
--disable_canonical_service
- 默认情况下,该脚本会将规范化服务控制器部署到您的集群。如果您不希望脚本部署该控制器,请指定
--disable_canonical_service
。如需了解详情,请参阅启用和停用规范化服务控制器。 -h|--help
- 显示描述选项和标志的帮助消息并退出。
--version
- 打印
install_asm
版本并退出。 如果命令未输出版本,请下载最新版本的install_asm_1.8
。
了解脚本
虽然您可以从安全的 Cloud Source Repositories 位置下载该脚本,但 GitHub 上也提供了该脚本,因此您可以在下载前查看它所执行的操作。脚本会验证您的项目和集群是否满足 Anthos Service Mesh 要求,并且会自动执行您配置项目和集群时将手动执行的所有步骤,然后使用 istioctl install
命令安装 Anthos Service Mesh。
通过 Anthos Service Mesh 1.8.6,您可以在 release-1.8-asm
分支上使用 install_asm
脚本的版本。如需查看版本控制和发布流程的说明,请参阅版本控制/发布。
验证
validate_args
和 validate_dependencies
函数:
设置项目
如果您已添加 --enable_all
或 --enable_apis
标志,脚本会启用所需的 APIS:
如果您已添加 --enable_all
或 --enable_gcp_iam_roles
标志,脚本会设置所需的 IAM 权限。
设置集群
如果您已添加 --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-186-8 这样的标签,以分辨脚本是否已修改集群。 |
--enable_cluster_labels |
将运行脚本的 GCP 用户或服务账号绑定到集群上的“集群管理员”角色。 | --enable_cluster_roles |