为非 Google CloudKubernetes 工作负载安装 Cloud Service Mesh
本页面介绍了如何为非 Google CloudKubernetes 工作负载安装非托管式集群内 Cloud Service Mesh:
- 运行
asmcli以全新安装 Cloud Service Mesh 1.27.2-asm.1。 - (可选)部署入站流量网关。
- 部署或重新部署工作负载以注入 Sidecar 代理。
如果您需要在 GKE 上使用 istiod 控制平面安装非托管式集群内 Cloud Service Mesh,请参阅在 Google Cloud上安装集群内 Cloud Service Mesh。请注意,对于Google Cloud上的 Kubernetes 工作负载,我们建议配置托管式控制平面
如需查看准备离线安装 Cloud Service Mesh 的说明,请参阅准备离线安装 Cloud Service Mesh。运行 asmcli install 时,您需要指定 --offline 和 --output_dir 选项。
限制
注意以下限制:
一个网格的所有 Cloud Service Mesh 集群必须始终注册到同一舰队,才能使用 Cloud Service Mesh。Cloud Service Mesh 集群所在项目中的其他集群不得注册到不同的舰队中。
asmcli工具必须有权访问 Google Kubernetes Engine (GKE) 端点。您可以通过“跳转”服务器(例如提供特定访问权限的 Virtual Private Cloud [VPC] 中的 Compute Engine 虚拟机)配置访问权限。
须知事项
开始之前,请确保执行以下操作:
安装集群内 Cloud Service Mesh 所需的角色
下表介绍了安装集群内 Cloud Service Mesh 所需的角色。
| 角色名称 | 角色 ID | 授予位置 | 说明 |
|---|---|---|---|
| GKE Hub Admin | roles/gkehub.admin | 舰队项目 | 拥有对 GKE Hub 及相关资源的完全访问权限。 |
| Kubernetes Engine Admin | roles/container.admin | 集群项目。请注意,必须在舰队和集群项目中针对跨项目绑定授予此角色。 | 提供容器集群及其 Kubernetes API 对象的完全管理访问权限。 |
| Mesh Config Admin | roles/meshconfig.admin | 舰队与集群项目 | 提供初始化 Cloud Service Mesh 的托管式组件(例如托管式控制平面)所需的权限和允许工作负载和 Stackdriver 无需分别获得授权即可彼此通信的后端权限(针对托管式控制平面和集群内控制平面)。 |
| 项目 IAM 管理员 | roles/resourcemanager.projectIamAdmin | 集群项目 | 提供管理项目的 IAM 政策的权限。 |
| 服务账号管理员 | roles/iam.serviceAccountAdmin | 舰队项目 | 以服务账号身份进行身份验证。 |
| Service Management Admin | roles/servicemanagement.admin | 舰队项目 | 拥有对 Google Service Management 资源的完全控制权。 |
| Service Usage Admin | roles/serviceusage.serviceUsageAdmin | 舰队项目 | 可启用、停用和检查使用方项目的服务状态、检查该项目的操作,以及使用其配额和结算服务。(注意 1) |
| CA Service Admin Beta 版 | roles/privateca.admin | 舰队项目 | 具有对所有 CA 服务资源的完整访问权限。 (注意 2) |
注意:
- Service Usage Admin - 此角色是初始配置托管式 Cloud Service Mesh 时启用
mesh.googleapis.comAPI 的前提条件。 - CA Service Admin - 只有在与 CA Service 集成时才需要此角色。
安装 Cloud Service Mesh
以下部分概述了如何安装 Cloud Service Mesh:
运行
asmcli install以在单个集群上安装集群内控制层面。有关命令行示例,请参阅以下部分。这些示例同时包含必需参数和可能很有用的可选参数。我们建议您始终指定output_dir参数,以便找到示例网关和istioctl等工具。请在右侧的导航栏中查看示例列表。(可选)安装入站流量网关。默认情况下,
asmcli不会安装istio-ingressgateway。我们建议您单独部署和管理控制平面和网关。如果您需要随集群内控制平面安装的默认istio-ingressgateway,请添加--option legacy-default-ingressgateway参数。如需完成 Cloud Service Mesh 的设置,您需要启用自动边车注入并部署或重新部署工作负载。
如果要在多个集群上安装 Cloud Service Mesh,请在每个集群上运行
asmcli install。运行asmcli install时,请务必为每个集群使用相同的FLEET_PROJECT_ID。安装 Cloud Service Mesh 后,请参阅在 Google Cloud之外设置多集群网格的说明。如果您的集群位于不同的网络(如处于孤岛模式时),您应该使用
--network_id标志将唯一的网络名称传递给asmcli。
安装默认功能和 Mesh CA
本部分介绍如何运行 asmcli 以使用默认的平台支持的功能安装 Cloud Service Mesh,并启用 Cloud Service Mesh 证书授权机构作为证书授权机构。
本地
在 Google Distributed Cloud for VMware(纯软件)或 Google Distributed Cloud for Bare Metal(纯软件)上运行以下命令,以使用默认功能和 Cloud Service Mesh 证书授权机构安装控制平面。在提供的占位符中输入值。
将当前上下文设置为用户集群:
kubectl config use-context CLUSTER_NAME运行
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca mesh_ca--fleet_id:队列宿主项目的项目 ID。--kubeconfigkubeconfig文件的完整路径。环境变量$PWD不适用于此处。 此外,使用“~”的相对kubeconfig文件位置将不起作用。--output_dir添加此选项可指定asmcli在其中下载anthos-service-mesh软件包并提取安装文件的目录,其中包含istioctl、示例和清单。否则,asmcli会将文件下载到tmp目录。您可以指定相对路径或完整路径。环境变量$PWD不适用于此处。--platform multicloud指定平台是 Google Cloud以外的平台,例如本地平台或多云平台。--enable_all允许脚本执行以下操作:- 授予所需的 IAM 权限
- 启用所需的 Google API。
- 在集群上设置用于标识网格的标签。
- 如果尚未注册集群,请注册集群。
--ca mesh_ca将 Cloud Service Mesh 证书授权机构用作证书授权机构。asmcli将 Cloud Service Mesh 证书授权机构配置为使用舰队工作负载身份
如需在 Cloud Service Mesh 界面中查看 SLO 和基础架构指标,您还必须执行启用应用日志记录和监控中的前三个步骤。 如果未启用日志记录和监控且不接收自定义日志和指标,则 Cloud Service Mesh 信息中心不会显示 SLO、错误日志或 CPU 和内存指标。
AWS
在 GKE on AWS 上运行以下命令,以使用默认功能和 Cloud Service Mesh 证书授权机构安装控制平面。在提供的占位符中输入值。
将当前上下文设置为用户集群:
kubectl config use-context CLUSTER_NAME运行
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca mesh_ca--fleet_id:队列宿主项目的项目 ID。--kubeconfigkubeconfig文件的完整路径。环境变量$PWD不适用于此处。 此外,使用“~”的相对kubeconfig文件位置将不起作用。--output_dir添加此选项可指定asmcli在其中下载anthos-service-mesh软件包并提取安装文件的目录,其中包含istioctl、示例和清单。否则,asmcli会将文件下载到tmp目录。您可以指定相对路径或完整路径。环境变量$PWD不适用于此处。--platform multicloud指定平台是 Google Cloud以外的平台,例如本地平台或多云平台。--enable_all允许脚本执行以下操作:- 授予所需的 IAM 权限
- 启用所需的 Google API。
- 在集群上设置用于标识网格的标签。
- 如果尚未注册集群,请注册集群。
--ca mesh_ca将 Cloud Service Mesh 证书授权机构用作证书授权机构。asmcli将 Cloud Service Mesh 证书授权机构配置为使用舰队工作负载身份。
如需在 Cloud Service Mesh 界面中查看 SLO 和基础架构指标,您还必须执行启用应用日志记录和监控中的前三个步骤。 如果未启用日志记录和监控且不接收自定义日志和指标,则 Cloud Service Mesh 信息中心不会显示 SLO、错误日志或 CPU 和内存指标。
Azure
在 GKE on Azure 上运行以下命令,以使用默认功能和 Cloud Service Mesh 证书授权机构安装控制平面。 在提供的占位符中输入值。
将当前上下文设置为用户集群:
kubectl config use-context CLUSTER_NAME运行
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca mesh_ca--fleet_id:队列宿主项目的项目 ID。--kubeconfigkubeconfig文件的完整路径。环境变量$PWD不适用于此处。 此外,使用“~”的相对kubeconfig文件位置将不起作用。--output_dir添加此选项可指定asmcli在其中下载anthos-service-mesh软件包并提取安装文件的目录,其中包含istioctl、示例和清单。否则,asmcli会将文件下载到tmp目录。您可以指定相对路径或完整路径。环境变量$PWD不适用于此处。--platform multicloud指定平台是 Google Cloud以外的平台,例如本地平台或多云平台。--enable_all允许脚本执行以下操作:- 授予所需的 IAM 权限
- 启用所需的 Google API。
- 在集群上设置用于标识网格的标签。
- 如果尚未注册集群,请注册集群。
--ca mesh_ca将 Cloud Service Mesh 证书授权机构用作证书授权机构。asmcli将 Cloud Service Mesh 证书授权机构配置为使用舰队工作负载身份。
如需在 Cloud Service Mesh 界面中查看 SLO 和基础架构指标,您还必须执行启用应用日志记录和监控中的前三个步骤。 如果未启用日志记录和监控且不接收自定义日志和指标,则 Cloud Service Mesh 信息中心不会显示 SLO、错误日志或 CPU 和内存指标。
Amazon EKS
在 Amazon EKS 上运行以下命令,以使用默认功能和 Cloud Service Mesh 证书授权机构安装控制平面。在提供的占位符中输入值。
将当前上下文设置为用户集群:
kubectl config use-context CLUSTER_NAME运行
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --option attached-cluster \ --network_id default \ --ca mesh_ca--fleet_id:队列宿主项目的项目 ID。--kubeconfigkubeconfig文件的完整路径。环境变量$PWD不适用于此处。 此外,使用“~”的相对kubeconfig文件位置将不起作用。--output_dir添加此选项可指定asmcli在其中下载anthos-service-mesh软件包并提取安装文件的目录,其中包含istioctl、示例和清单。否则,asmcli会将文件下载到tmp目录。您可以指定相对路径或完整路径。环境变量$PWD不适用于此处。--platform multicloud指定平台是 Google Cloud以外的平台,例如本地平台或多云平台。--enable_all允许脚本执行以下操作:- 授予所需的 IAM 权限
- 启用所需的 Google API。
- 在集群上设置用于标识网格的标签。
- 如果尚未注册集群,请注册集群。
--option attached-cluster:将默认签名实用程序更改为 istiod。--network_id:如果要设置多网络网格,请将网格中每个集群的--network_id值都设为一个唯一值。--ca mesh_ca将 Cloud Service Mesh 证书授权机构用作证书授权机构。asmcli将 Cloud Service Mesh 证书授权机构配置为使用舰队工作负载身份。
如需在 Cloud Service Mesh 界面中查看 SLO 和基础架构指标,您还必须执行启用应用日志记录和监控中的前三个步骤。 如果未启用日志记录和监控且不接收自定义日志和指标,则 Cloud Service Mesh 信息中心不会显示 SLO、错误日志或 CPU 和内存指标。
Microsoft AKS
在 Microsoft AKS 上运行以下命令,以使用默认功能和 Cloud Service Mesh 证书授权机构安装控制平面。在提供的占位符中输入值。
将当前上下文设置为用户集群:
kubectl config use-context CLUSTER_NAME运行
asmcli install:HUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer ./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --option attached-cluster \ --network_id default \ --ca mesh_caHUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer允许向 GKE Hub 注册。--fleet_id:队列宿主项目的项目 ID。--kubeconfigkubeconfig文件的完整路径。环境变量$PWD不适用于此处。 此外,使用“~”的相对kubeconfig文件位置将不起作用。--output_dir添加此选项可指定asmcli在其中下载anthos-service-mesh软件包并提取安装文件的目录,其中包含istioctl、示例和清单。否则,asmcli会将文件下载到tmp目录。您可以指定相对路径或完整路径。环境变量$PWD不适用于此处。--platform multicloud指定平台是 Google Cloud以外的平台,例如本地平台或多云平台。--enable_all允许脚本执行以下操作:- 授予所需的 IAM 权限
- 启用所需的 Google API。
- 在集群上设置用于标识网格的标签。
- 如果尚未注册集群,请注册集群。
--option attached-cluster:将默认签名实用程序更改为 istiod。--network_id:如果要设置多网络网格,请将网格中每个集群的--network_id值都设为一个唯一值。--ca mesh_ca将 Cloud Service Mesh 证书授权机构用作证书授权机构。asmcli将 Cloud Service Mesh 证书授权机构配置为使用舰队工作负载身份。
如需在 Cloud Service Mesh 界面中查看 SLO 和基础架构指标,您还必须执行启用应用日志记录和监控中的前三个步骤。 如果未启用日志记录和监控且不接收自定义日志和指标,则 Cloud Service Mesh 信息中心不会显示 SLO、错误日志或 CPU 和内存指标。
安装默认功能和证书授权机构 (CA) 服务
本部分介绍了如何运行 asmcli 来安装具有适用于您的平台的默认支持功能的 Cloud Service Mesh,以及如何启用 CA Service 作为证书授权机构。
除 Cloud Service Mesh 证书授权机构以外,您也可以将 Cloud Service Mesh 配置为使用 Certificate Authority Service。本指南提供了与 CA Service 集成的机会,建议用于以下使用场景:
- 您需要不同的证书授权机构对不同集群上的工作负载证书签名。
- 您需要将签名密钥备份到 Cloud HSM 中。
- 您从事的要是严格监管的行业,且需要遵守法规。
- 您需要将 Cloud Service Mesh CA 链接到自定义企业根证书来为工作负载证书签名。
Cloud Service Mesh 证书授权机构的费用包含在 Cloud Service Mesh 价格中。CA Service 不包含在 Cloud Service Mesh 基础价格中,而是单独计费。此外,CA Service 附带明确的服务等级协议 (SLA),但 Cloud Service Mesh 证书授权机构没有。
配置 CA Service
- 在层级
DevOps中创建 CA 池,并且与其服务的集群位于同一区域,以避免延迟时间过长问题或潜在的跨区域服务中断。如需了解详情,请参阅工作负载优化的层级。 - 创建 CA,从而保证在 GKE 集群所在项目内,该 CA 池中至少有一个活跃的证书授权机构。使用从属 CA 对 Cloud Service Mesh 工作负载证书签名。记下与从属 CA 对应的 CA 池。
如果您希望它仅为 Cloud Service Mesh 工作负载提供证书,请为 CA 池设置以下颁发政策:
policy.yaml
baselineValues: keyUsage: baseKeyUsage: digitalSignature: true keyEncipherment: true extendedKeyUsage: serverAuth: true clientAuth: true caOptions: isCa: false identityConstraints: allowSubjectPassthrough: false allowSubjectAltNamesPassthrough: true celExpression: expression: subject_alt_names.all(san, san.type == URI && san.value.startsWith("spiffe://PROJECT_ID.svc.id.goog/ns/") )要更新 CA 池的颁发政策,请使用以下命令:
gcloud privateca pools update CA_POOL --location ca_region --issuance-policy policy.yaml
如需了解如何对池设置政策,请参阅使用证书颁发政策。
如果您使用的是证书模板,请立即配置。如需了解详情,请按照 CA 服务指南获取工作负载身份证书。确保在 CA 池所在的区域中创建证书模板。如果 CA 池有多个区域,则每个区域创建一个证书模板。
将 Cloud Service Mesh 配置为使用 CA Service
在 Google Distributed Cloud for VMware(纯软件)或 Google Distributed Cloud for Bare Metal(纯软件)上运行以下命令,以安装具有默认功能和 Certificate Authority Service 的控制平面。在提供的占位符中输入值。
将当前上下文设置为用户集群:
kubectl config use-context CLUSTER_NAME运行
asmcli install:./asmcli install \ --kubeconfig KUBECONFIG_FILE \ --fleet_id FLEET_PROJECT_ID \ --output_dir DIR_PATH \ --enable_all \ --ca gcp_cas \ --platform multicloud \ --ca_pool projects/CA_POOL_PROJECT_ID/locations/ca_region/caPools/CA_POOL
--fleet_id:队列宿主项目的项目 ID。--kubeconfigkubeconfig文件的完整路径。环境变量$PWD不适用于此处。 此外,使用“~”的相对kubeconfig文件位置将不起作用。--output_dir添加此选项可指定asmcli在其中下载anthos-service-mesh软件包并提取安装文件的目录,其中包含istioctl、示例和清单。否则,asmcli会将文件下载到tmp目录。您可以指定相对路径或完整路径。环境变量$PWD不适用于此处。--platform multicloud指定平台是 Google Cloud以外的平台,例如本地平台或多云平台。--enable_all允许脚本执行以下操作:- 授予所需的 IAM 权限
- 启用所需的 Google API。
- 在集群上设置用于标识网格的标签。
- 如果尚未注册集群,请注册集群。
--ca gcp_cas:使用 Certificate Authority Service 作为证书授权机构。在升级期间更改证书授权机构会导致停机。asmcli将 Certificate Authority Service 配置为使用舰队工作负载身份--ca_pool:Certificate Authority Service CA 池的完整标识符。如果您使用的是证书模板,请附加以:分隔的模板 ID。例如:--ca_pool projects/CA_POOL_PROJECT_ID/locations/ca_region/caPools/CA_POOL:projects/CA_POOL_PROJECT_ID/locations/ca_region/certificateTemplates/CERT_TEMPLATE_ID
如需在 Cloud Service Mesh 界面中查看 SLO 和基础设施指标,您还必须执行启用应用日志记录和监控中的前三个步骤。如果未启用日志记录和监控且不接收自定义日志和指标,则 Cloud Service Mesh 信息中心不会显示 SLO、错误日志或 CPU 和内存指标。
使用 Istio CA 安装默认功能
本节介绍如何执行以下操作:
- 为 Cloud Service Mesh 用于对工作负载签名的 Istio CA 生成证书和密钥。
- 运行
asmcli以安装具有默认功能的 Cloud Service Mesh 并启用 Istio CA。
默认情况下,安装使用 Istio CA 的 Cloud Service Mesh 的环境会向 Prometheus 报告指标。如果您要使用 Cloud Service Mesh 信息中心,则必须启用 Stackdriver。如需了解详情,请参阅使用可选功能安装。
为了获得最佳安全性,我们强烈建议您维护离线根 CA,并使用从属 CA 为每个集群颁发证书。如需了解详情,请参阅插入 CA 证书。在此配置中,服务网格中的所有工作负载都将使用相同的根证书授权机构 (CA)。每个 Cloud Service Mesh CA 使用中间 CA 签名密钥和证书(由根 CA 签名)。当网格中存在多个 CA 时,这会建立 CA 间的信任层次结构。您可以重复这些步骤,为任意数量的证书授权机构预配证书和密钥。
用于生成证书的 Makefile 位于您通过 asmcli validate 命令指定的 --output_dir 目录中的 istio-1.27.2-asm.1 子目录内。如果您未运行 asmcli validate,或者您没有本地下载的目录,则可以通过下载 Cloud Service Mesh 安装文件并提取其内容来获取 Makefile。
切换到
istio-1.27.2-asm.1目录:为证书和密钥创建一个目录:
mkdir -p certs && \ pushd certs
生成根证书和密钥:
make -f ../tools/certs/Makefile.selfsigned.mk root-ca
这会生成以下文件:
- root-cert.pem:根证书
- root-key.pem:根密钥
- root-ca.conf:openssl 用于生成根证书的配置
- root-cert.csr:根证书的 CSR
生成中间证书和密钥:
make -f ../tools/certs/Makefile.selfsigned.mk cluster1-cacerts
此操作会在名为
cluster1的目录中生成以下文件:- ca-cert.pem:中间证书
- ca-key.pem:中间密钥
- cert-chain.pem:
istiod使用的证书链 - root-cert.pem:根证书
如果您使用离线计算机执行这些步骤,请将生成的目录复制到有权访问集群的计算机。
返回上一个目录:
popd
运行
asmcli以使用 Istio CA 安装网格:本地
在 Google Distributed Cloud for VMware(纯软件)和 Google Distributed Cloud for Bare Metal(纯软件)上运行以下命令,以使用默认功能和 Istio CA 安装控制平面。在提供的占位符中输入值。
将当前上下文设置为用户集群:
kubectl config use-context CLUSTER_NAME运行
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert CA_CERT_FILE_PATH \ --ca_key CA_KEY_FILE_PATH \ --root_cert ROOT_CERT_FILE_PATH \ --cert_chain CERT_CHAIN_FILE_PATH--fleet_id:队列宿主项目的项目 ID。--kubeconfigkubeconfig文件的完整路径。环境变量$PWD不适用于此处。 此外,使用“~”的相对kubeconfig文件位置将不起作用。--output_dir添加此选项可指定asmcli在其中下载anthos-service-mesh软件包并提取安装文件的目录,其中包含istioctl、示例和清单。否则,asmcli会将文件下载到tmp目录。您可以指定相对路径或完整路径。环境变量$PWD不适用于此处。--platform multicloud指定平台是 Google Cloud以外的平台,例如本地平台或多云平台。--enable_all允许脚本执行以下操作:- 授予所需的 IAM 权限
- 启用所需的 Google API。
- 在集群上设置用于标识网格的标签。
- 如果尚未注册集群,请注册集群。
-ca citadel将 Istio CA 用作证书授权机构。--ca_cert:中间证书--ca_key:中间证书的密钥--root_cert:根证书--cert_chain:证书链
AWS
在 GKE on AWS 上运行以下命令,以使用默认功能和 Istio CA 安装控制平面。在提供的占位符中输入值。您可以选择为公共子网或专用子网启用 Ingress。
公开
将当前上下文设置为用户集群:
kubectl config use-context CLUSTER_NAME运行
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert CA_CERT_FILE_PATH \ --ca_key CA_KEY_FILE_PATH \ --root_cert ROOT_CERT_FILE_PATH \ --cert_chain CERT_CHAIN_FILE_PATH--fleet_id:队列宿主项目的项目 ID。--kubeconfigkubeconfig文件的完整路径。环境变量$PWD不适用于此处。 此外,使用“~”的相对kubeconfig文件位置将不起作用。--output_dir添加此选项可指定asmcli在其中下载anthos-service-mesh软件包并提取安装文件的目录,其中包含istioctl、示例和清单。否则,asmcli会将文件下载到tmp目录。您可以指定相对路径或完整路径。环境变量$PWD不适用于此处。--platform multicloud指定平台是 Google Cloud以外的平台,例如本地平台或多云平台。--enable_all允许脚本执行以下操作:- 授予所需的 IAM 权限
- 启用所需的 Google API。
- 在集群上设置用于标识网格的标签。
- 如果尚未注册集群,请注册集群。
-ca citadel将 Istio CA 用作证书授权机构。--ca_cert:中间证书。--ca_key:中间证书的密钥。--root_cert:根证书。--cert_chain:证书链
非公开
将当前上下文设置为用户集群:
kubectl config use-context CLUSTER_NAME将以下 YAML 保存到名为
istio-operator-internal-lb.yaml的文件:apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: components: ingressGateways: - enabled: true k8s: serviceAnnotations: service.beta.kubernetes.io/aws-load-balancer-internal: "true" name: istio-ingressgateway运行
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert FILE_PATH \ --ca_key FILE_PATH \ --root_cert FILE_PATH \ --cert_chain FILE_PATH \ --custom_overlay istio-operator-internal-lb.yaml--fleet_id:队列宿主项目的项目 ID。--kubeconfigkubeconfig文件的完整路径。环境变量$PWD不适用于此处。 此外,使用“~”的相对kubeconfig文件位置将不起作用。--output_dir添加此选项可指定asmcli在其中下载anthos-service-mesh软件包并提取安装文件的目录,其中包含istioctl、示例和清单。否则,asmcli会将文件下载到tmp目录。您可以指定相对路径或完整路径。环境变量$PWD不适用于此处。--platform multicloud指定平台是 Google Cloud以外的平台,例如本地平台或多云平台。--enable_all允许脚本执行以下操作:- 授予所需的 IAM 权限
- 启用所需的 Google API。
- 在集群上设置用于标识网格的标签。
- 如果尚未注册集群,请注册集群。
-ca citadel将 Istio CA 用作证书授权机构。--ca_cert:中间证书。--ca_key:中间证书的密钥。--root_cert:根证书。--cert_chain:证书链--custom_overlay:创建的叠加文件的名称。如需详细了解叠加文件,请参阅在集群内控制平面上启用可选功能。
Azure
在 GKE on Azure 上运行以下命令,以使用默认功能和 Istio CA 安装控制平面。在提供的占位符中输入值。您可以选择为公共子网或专用子网启用 Ingress。
公开
将当前上下文设置为用户集群:
kubectl config use-context CLUSTER_NAME运行
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert CA_CERT_FILE_PATH \ --ca_key CA_KEY_FILE_PATH \ --root_cert ROOT_CERT_FILE_PATH \ --cert_chain CERT_CHAIN_FILE_PATH--fleet_id:队列宿主项目的项目 ID。--kubeconfigkubeconfig文件的完整路径。环境变量$PWD不适用于此处。 此外,使用“~”的相对kubeconfig文件位置将不起作用。--output_dir添加此选项可指定asmcli在其中下载anthos-service-mesh软件包并提取安装文件的目录,其中包含istioctl、示例和清单。否则,asmcli会将文件下载到tmp目录。您可以指定相对路径或完整路径。环境变量$PWD不适用于此处。--platform multicloud指定平台是 Google Cloud以外的平台,例如本地平台或多云平台。--enable_all允许脚本执行以下操作:- 授予所需的 IAM 权限
- 启用所需的 Google API。
- 在集群上设置用于标识网格的标签。
- 如果尚未注册集群,请注册集群。
-ca citadel将 Istio CA 用作证书授权机构。--ca_cert:中间证书。--ca_key:中间证书的密钥。--root_cert:根证书。--cert_chain:证书链
非公开
将当前上下文设置为用户集群:
kubectl config use-context CLUSTER_NAME将以下 YAML 保存到名为
istio-operator-internal-lb.yaml的文件:apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: components: ingressGateways: - enabled: true k8s: serviceAnnotations: service.beta.kubernetes.io/aws-load-balancer-internal: "true" name: istio-ingressgateway运行
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert FILE_PATH \ --ca_key FILE_PATH \ --root_cert FILE_PATH \ --cert_chain FILE_PATH \ --custom_overlay istio-operator-internal-lb.yaml--fleet_id:队列宿主项目的项目 ID。--kubeconfigkubeconfig文件的完整路径。环境变量$PWD不适用于此处。 此外,使用“~”的相对kubeconfig文件位置将不起作用。--output_dir添加此选项可指定asmcli在其中下载anthos-service-mesh软件包并提取安装文件的目录,其中包含istioctl、示例和清单。否则,asmcli会将文件下载到tmp目录。您可以指定相对路径或完整路径。环境变量$PWD不适用于此处。--platform multicloud指定平台是 Google Cloud以外的平台,例如本地平台或多云平台。--enable_all允许脚本执行以下操作:- 授予所需的 IAM 权限
- 启用所需的 Google API。
- 在集群上设置用于标识网格的标签。
- 如果尚未注册集群,请注册集群。
-ca citadel将 Istio CA 用作证书授权机构。--ca_cert:中间证书。--ca_key:中间证书的密钥。--root_cert:根证书。--cert_chain:证书链--custom_overlay:创建的叠加文件的名称。如需详细了解叠加文件,请参阅在集群内控制平面上启用可选功能。
Amazon EKS
在 Amazon EKS 上运行以下命令,以使用默认功能和 Istio CA 来安装控制平面。在提供的占位符中输入值。
将当前上下文设置为用户集群:
kubectl config use-context CLUSTER_NAME运行
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --option attached-cluster \ --ca citadel \ --ca_cert CA_CERT_FILE_PATH \ --ca_key CA_KEY_FILE_PATH \ --root_cert ROOT_CERT_FILE_PATH \ --cert_chain CERT_CHAIN_FILE_PATH \ --network_id default--fleet_id:队列宿主项目的项目 ID。--kubeconfigkubeconfig文件的完整路径。环境变量$PWD不适用于此处。 此外,使用“~”的相对kubeconfig文件位置将不起作用。--output_dir添加此选项可指定asmcli在其中下载anthos-service-mesh软件包并提取安装文件的目录,其中包含istioctl、示例和清单。否则,asmcli会将文件下载到tmp目录。您可以指定相对路径或完整路径。环境变量$PWD不适用于此处。--platform multicloud指定平台是 Google Cloud以外的平台,例如本地平台或多云平台。--enable_all允许脚本执行以下操作:- 授予所需的 IAM 权限
- 启用所需的 Google API。
- 在集群上设置用于标识网格的标签。
- 如果尚未注册集群,请注册集群。
--option attached-cluster:将默认签名实用程序更改为 istiod。-ca citadel将 Istio CA 用作证书授权机构。--ca_cert:中间证书--ca_key:中间证书的密钥--root_cert:根证书--cert_chain:证书链--network_id:如果要设置多网络网格,请将网格中每个集群的--network_id值都设为一个唯一值。
Microsoft AKS
在 Microsoft AKS 上运行以下命令,以使用默认功能和 Istio CA 来安装控制平面。在提供的占位符中输入值。
将当前上下文设置为用户集群:
kubectl config use-context CLUSTER_NAME运行
asmcli install:HUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer ./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --option attached-cluster \ --ca citadel \ --ca_cert CA_CERT_FILE_PATH \ --ca_key CA_KEY_FILE_PATH \ --root_cert ROOT_CERT_FILE_PATH \ --cert_chain CERT_CHAIN_FILE_PATH \ --network_id defaultHUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer允许向 GKE Hub 注册。--fleet_id:队列宿主项目的项目 ID。--kubeconfigkubeconfig文件的完整路径。环境变量$PWD不适用于此处。 此外,使用“~”的相对kubeconfig文件位置将不起作用。--output_dir添加此选项可指定asmcli在其中下载anthos-service-mesh软件包并提取安装文件的目录,其中包含istioctl、示例和清单。否则,asmcli会将文件下载到tmp目录。您可以指定相对路径或完整路径。环境变量$PWD不适用于此处。--platform multicloud指定平台是 Google Cloud以外的平台,例如本地平台或多云平台。--enable_all允许脚本执行以下操作:- 授予所需的 IAM 权限
- 启用所需的 Google API。
- 在集群上设置用于标识网格的标签。
- 如果尚未注册集群,请注册集群。
--option attached-cluster:将默认签名实用程序更改为 istiod。-ca citadel将 Istio CA 用作证书授权机构。--ca_cert:中间证书--ca_key:中间证书的密钥--root_cert:根证书--cert_chain:证书链--network_id:如果要设置多网络网格,请将网格中每个集群的--network_id值都设为一个唯一值。
使用已启用 Google Cloud Observability 的 Istio CA 进行安装
如果您要使用 Cloud Service Mesh 信息中心,则必须启用 Stackdriver。
本地
在 Google Distributed Cloud for VMware(纯软件)和 Google Distributed Cloud for Bare Metal(纯软件)上运行以下命令,以使用 Stackdriver、其他可选功能和 Istio CA 安装控制平面。在提供的占位符中输入值。
将当前上下文设置为用户集群:
kubectl config use-context CLUSTER_NAME运行
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert CA_CERT_FILE_PATH \ --ca_key CA_KEY_FILE_PATH \ --root_cert ROOT_CERT_FILE_PATH \ --cert_chain CERT_CHAIN_FILE_PATH--fleet_id:队列宿主项目的项目 ID。--kubeconfigkubeconfig文件的完整路径。环境变量$PWD不适用于此处。 此外,使用“~”的相对kubeconfig文件位置将不起作用。--output_dir添加此选项可指定asmcli在其中下载anthos-service-mesh软件包并提取安装文件的目录,其中包含istioctl、示例和清单。否则,asmcli会将文件下载到tmp目录。您可以指定相对路径或完整路径。环境变量$PWD不适用于此处。--platform multicloud指定平台是 Google Cloud以外的平台,例如本地平台或多云平台。--enable_all允许脚本执行以下操作:- 授予所需的 IAM 权限
- 启用所需的 Google API。
- 在集群上设置用于标识网格的标签。
- 如果尚未注册集群,请注册集群。
-ca citadel将 Istio CA 用作证书授权机构。--ca_cert:中间证书--ca_key:中间证书的密钥--root_cert:根证书--cert_chain:证书链--option stackdriver:启用 Stackdriver 选项。请注意,您还可以使用--option prometheus-and-stackdriver启用 Stackdriver 和 Prometheus。
如需在 Cloud Service Mesh 界面中查看 SLO 和基础架构指标,您还必须执行启用应用日志记录和监控中的前三个步骤。 如果未启用日志记录和监控且不接收自定义日志和指标,则 Cloud Service Mesh 信息中心不会显示 SLO、错误日志或 CPU 和内存指标。
AWS
在 GKE on AWS 上运行以下命令,以使用 Stackdriver、其他可选功能和 Istio CA 安装控制平面。在提供的占位符中输入值。您可以选择为公共子网或专用子网启用 Ingress。
公开
将当前上下文设置为用户集群:
kubectl config use-context CLUSTER_NAME运行
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert CA_CERT_FILE_PATH \ --ca_key CA_KEY_FILE_PATH \ --root_cert ROOT_CERT_FILE_PATH \ --cert_chain CERT_CHAIN_FILE_PATH \ --option stackdriver--fleet_id:队列宿主项目的项目 ID。--kubeconfigkubeconfig文件的完整路径。环境变量$PWD不适用于此处。 此外,使用“~”的相对kubeconfig文件位置将不起作用。--output_dir添加此选项可指定asmcli在其中下载anthos-service-mesh软件包并提取安装文件的目录,其中包含istioctl、示例和清单。否则,asmcli会将文件下载到tmp目录。您可以指定相对路径或完整路径。环境变量$PWD不适用于此处。--platform multicloud指定平台是 Google Cloud以外的平台,例如本地平台或多云平台。--enable_all允许脚本执行以下操作:- 授予所需的 IAM 权限
- 启用所需的 Google API。
- 在集群上设置用于标识网格的标签。
- 如果尚未注册集群,请注册集群。
-ca citadel将 Istio CA 用作证书授权机构。--ca_cert:中间证书。--ca_key:中间证书的密钥。--root_cert:根证书。--cert_chain:证书链--option stackdriver:启用 Stackdriver 选项。请注意,您还可以使用--option prometheus-and-stackdriver启用 Stackdriver 和 Prometheus。
非公开
将当前上下文设置为用户集群:
kubectl config use-context CLUSTER_NAME将以下 YAML 保存到名为
istio-operator-internal-lb.yaml的文件:apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: components: ingressGateways: - enabled: true k8s: serviceAnnotations: service.beta.kubernetes.io/aws-load-balancer-internal: "true" name: istio-ingressgateway运行
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert FILE_PATH \ --ca_key FILE_PATH \ --root_cert FILE_PATH \ --cert_chain FILE_PATH --custom_overlay istio-operator-internal-lb.yaml \ --option stackdriver