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)。指定 mesh_ca 使用 Cloud Service Mesh 证书授权机构 (Cloud Service Mesh CA),指定 gcp_cas 使用 Certificate Authority Service,或者指定 citadel 使用 Istio CA。代管式 Cloud Service Mesh 不支持 Istio CA。要了解更多信息,请参阅以下内容:

--co|--custom_overlay OVERLAY_FILE

使用 --custom_overly 和包含 IstioOperator 自定义资源的 YAML 文件(称为“叠加文件”)的名称来配置集群内控制层面。 您可以指定叠加文件,以启用默认不启用的功能。代管式 Cloud Service Mesh 不支持 IstioOperator API,因此您无法使用 --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-system 命名空间的 topology.istio.io/network 标签。对于 GKE,--network_id 默认为集群的网络名称。对于其他环境,将使用 default

-o|--option OVERLAY_FILE

叠加文件的名称(不带 .yaml 扩展名),asmclianthos-service-mesh 代码库下载该文件以启用可选功能。您需要连接到互联网才能使用 --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 标志以指定要改用的目录的相对路径。完成后,指定的目录包含 asmistio-1.16.7-asm.22 子目录。asm 目录包含安装的配置。istio-1.16.7-asm.22 目录包含安装文件的解压缩内容,其中包含 istioctl、示例和清单。如果指定 --output-dir,并且目录已经包含必要的文件,则 asmcli 会使用这些文件,而不是重新下载。

--platform PLATFORM {gcp|multicloud}

Kubernetes 集群的平台或提供方。对于 GKE 集群,默认为 gcp。对于所有其他平台,则为 multicloud

-r|--revision_name REVISION NAME

修订版本标签是在控制平面上设置的键值对。修订版本标签键始终为 istio.io/rev。默认情况下,asmcli 会根据 Cloud Service Mesh 版本设置修订版本标签的值,例如:asm-1167-22。如果您想替换默认值并指定自己的值,请添加此选项。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,请确保在运行 asmcli 之前调用 gcloud auth login 命令。如果您需要更改用户账号,请运行 gcloud config set core/account GCP_EMAIL_ADDRESS 命令,其中 GCP_EMAIL_ADDRESS 是您用于登录 Google Cloud 的账号。
--enable_cluster_labels
允许 asmcli 设置所需的集群标签
--enable_gcp_components

允许 asmcli 启用以下所需的 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 将集群注册到集群所属项目。如果您未包含此标志,请按照注册集群中的步骤手动注册集群。请注意,与其他启用标志不同,当您指定需要集群注册的选项(例如 --option hub-meshca)时,--enable_registration 才会包含在 --enable_all 中。否则,您需要单独指定此标志。

其他标志

--dry_run
输出命令,但不执行这些命令。
--fleet_id
使用舰队的宿主项目 ID 将集群注册到舰队。此标志是非 Google Cloud 集群所必需的。如果没有为 Google Cloud 集群提供,则默认使用集群的项目 ID。您可以在安装之前运行 asmcli install--fleet_id,也可以在安装过程中通过传递 --enable-registration--fleet-id 标志来完成。此设置一经配置便无法更改。
--managed
预配一个远程代管式控制层面,而不是安装一个集群内控制层面。
--offline
在输出目录中使用预先下载的软件包执行离线安装。如果未指定该目录或者该目录未包含所需文件,则脚本将退出并报错。
--only_enable
执行指定的步骤来设置当前用户/集群,但不安装任何内容。
--only_validate
运行验证,但不更新项目或集群,并且不安装 Cloud Service Mesh。此标志与启用标志不兼容。如果您使用任何启用标志指定 --only_validateasmcli 会终止并显示错误。
--print_config
请将所有已编译的 YAML 输出到标准输出 (stdout),而不是安装 Cloud Service Mesh。所有其他输出都会写入标准错误 (stderr),即使它通常会转到 stdout 也是如此。当您指定此标志时,asmcli 会跳过所有验证和设置。
--disable_canonical_service
默认情况下,asmcli 会将规范化服务控制器部署到您的集群。如果您不希望 asmcli 部署该控制器,请指定 --disable_canonical_service。如需了解详情,请参阅启用和停用规范化服务控制器
-h|--help
显示描述选项和标志的帮助消息并退出。
--use_managed_cni
使用代管式 CNI。如果未传递此标志,则 asmcli 将应用静态 CNI 清单。
--use_vpcsc
现在,您无需再使用此标志即可为项目使用 VPC Service Controls
-v|--verbose
asmcli 运行时,会输出接下来将运行的命令。使用 --verbose 标志时,asmcli 还会在执行后输出命令。
--version
打印 asmcli 版本并退出。如果您没有最新版本,则可以下载最新版本的 asmcli_1.16

后续步骤