本页面介绍如何准备环境和集群以安装 Anthos Service Mesh
安装所需的工具
您可以在 Cloud Shell 或运行 Linux 的本地机器上运行 asmcli
。Cloud Shell 会预安装所有必需的工具。
如果您在本地运行 asmcli
,请确保已安装以下工具:
- Google Cloud CLI
- 标准命令行工具:
awk
、curl
、grep
、sed
、tr
- git
- kubectl
- jq
配置 gcloud
即使您使用的是 Cloud Shell,仍请执行以下步骤。
使用 Google Cloud CLI 进行身份验证:
gcloud auth login --project PROJECT_ID
更新组件:
gcloud components update
如果您要在 GKE 集群上安装 Anthos Service Mesh,请将
kubectl
配置为指向该集群。gcloud container clusters get-credentials CLUSTER_NAME \ --zone CLUSTER_LOCATION \ --project PROJECT_ID
下载 asmcli
本部分介绍如何下载 asmcli
。
将安装 Anthos Service Mesh 1.10.6 的版本下载到当前工作目录:
curl https://storage.googleapis.com/csm-artifacts/asm/asmcli_alpha > asmcli
让该脚本可执行:
chmod +x asmcli
授予集群管理员权限
将上下文切换到用户集群:
kubectl config use-context CLUSTER_NAME
向您的用户账号(您的 Google Cloud 登录电子邮件地址)授予集群管理员权限。您需要这些权限,以便为 Anthos Service Mesh 创建必要的基于角色的访问权限控制 (RBAC) 规则:
kubectl create clusterrolebinding cluster-admin-binding \ --clusterrole=cluster-admin \ --user=USER_ACCOUNT
验证项目和集群
您可以运行 asmcli validate
,确保根据需要设置了项目和集群以安装 Anthos Service Mesh。使用此选项时,asmcli
不会对您的项目或集群进行任何更改,也不会安装 Anthos Service Mesh。
该脚本会验证以下内容:
您的环境拥有所需的工具。
集群符合最低要求。
您对指定项目拥有所需权限。
项目已启用所有必需的 Google API。
默认情况下,该脚本会下载并解压缩安装文件,并将 GitHub 中的 asm
配置软件包下载到临时目录中。在退出之前,该脚本会输出一条消息,提供临时目录的名称。我们建议您使用 --output_dir DIR_PATH
选项指定下载目录。--output_dir
选项可方便您使用 istioctl
命令行工具(如果需要)。此外,用于启用可选功能的配置文件包含在 asm/istio/options
目录中。
运行以下命令以验证配置并将安装文件和 asm
软件包下载到 OUTPUT_DIR
目录。
GKE
./asmcli validate \
--project_id PROJECT_ID \
--cluster_name CLUSTER_NAME \
--cluster_location CLUSTER_LOCATION \
--output_dir DIR_PATH
--project_id
、--cluster_name
和--cluster_location
指定集群所在的项目 ID、集群名称以及集群区域或地区。--output_dir
添加此选项可指定asmcli
在其中下载asm
软件包并提取安装文件的目录,其中包含istioctl
、示例和清单。否则,asmcli
会将文件下载到tmp
目录。您可以指定相对路径或完整路径。环境变量$PWD
不适用于此处
本地
将当前上下文设置为用户集群:
kubectl config use-context CLUSTER_NAME
运行以下命令以验证配置并将安装文件和
asm
软件包下载到OUTPUT_DIR
目录:./asmcli validate \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud
--kubeconfig
kubeconfig
的路径。您可以指定相对路径或完整路径。环境变量$PWD
不适用于此处--output_dir
添加此选项可指定asmcli
在其中下载asm
软件包并提取安装文件的目录,其中包含istioctl
、示例和清单。否则,asmcli
会将文件下载到tmp
目录。您可以指定相对路径或完整路径。环境变量$PWD
不适用于此处。--platform multicloud
指定本地是平台。
成功后,脚本将输出以下内容:
asmcli: Setting up necessary files... asmcli: Using asm_kubeconfig as the kubeconfig... asmcli: Checking installation tool dependencies... asmcli: Fetching/writing GCP credentials to kubeconfig file... asmcli: Verifying connectivity (10s)... asmcli: kubeconfig set to asm_kubeconfig asmcli: using context gke_example-project-12345_us-central1_cluster-2 asmcli: Getting account information... asmcli: Downloading ASM.. asmcli: Downloading ASM kpt package... fetching package "/asm" from "https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages" to "asm" asmcli: Checking required APIs... asmcli: Checking for project example-project-12345... asmcli: Reading labels for us-central1/cluster-2... asmcli: Checking for istio-system namespace... asmcli: Confirming node pool requirements for example-project-12345/us-central1/cluster-2... asmcli: Checking Istio installations... asmcli: [WARNING]: There is no way to validate that the meshconfig API has been initialized. asmcli: [WARNING]: This needs to happen once per GCP project. If the API has not been initialized asmcli: [WARNING]: for example-project-12345, please re-run this tool with the --enable_gcp_components asmcli: [WARNING]: flag. Otherwise, installation will succeed but Anthos Service Mesh asmcli: [WARNING]: will not function correctly. asmcli: Successfully validated all requirements to install ASM.
如果某一个测试未通过验证,脚本将输出错误消息。例如,如果您的项目未启用所有必需的 Google API,您会看到以下错误:
ERROR: One or more APIs are not enabled. Please enable them and retry, or run the script with the '--enable_gcp_apis' flag to allow the script to enable them on your behalf.
如果您收到错误消息,指出需要运行带有启用标志的脚本,则可以采用以下方法:
在运行该脚本来执行实际安装(即不带
--only_validate
)时,添加错误消息中的特定标志或--enable_all
标志。如果您愿意,可以在运行该脚本之前,按照用于在 GKE 上安装 Anthos Service Mesh 的设置所述,自行更新项目和集群。
请注意,asmcli
不允许任何带有 --only_validate
的启用标志。
检查集群安装和升级要求
在升级之前,您应检查配置是否与新版本的 Anthos Service Mesh 兼容。
切换到您在
--output_dir
中指定的目录。运行以下命令以检查 Kubernetes 集群是否满足安装和升级要求。请务必使用与新 Anthos Service Mesh 版本一起分发的
istioctl
版本。istioctl experimental precheck