安装 Anthos Service Mesh 时,您可以指定 Anthos Service Mesh 配置文件,其用于启用在支持的功能页面上列出的支持的默认功能。Anthos Service Mesh 配置文件 asm.yaml
和 asm-onprem.yaml
位于 Anthos Service Mesh 安装根目录的 install/kubernetes/operator/profiles
子目录中。这些配置文件定义和配置使用 Anthos Service Mesh 安装的功能。
您可以在命令行中使用 --set values
替换 ASM 配置文件并单独启用支持的可选功能。或者,如果您有许多功能需要启用,或者该功能具有许多设置,则您还可以创建 IstioControlPlane
自定义资源定义文件。使用 -f
选项将该文件传递给 istioctl
。如需了解详情,请参阅自定义配置。
启用可选的功能时:
请确保您已启用支持的功能。
指定适合您的平台的配置文件:
- 对于 Google Kubernetes Engine,请使用
--set profile=asm
- 对于 GKE on VMware,请使用
--set profile=asm-onprem
- 对于 Google Kubernetes Engine,请使用
用于启用可选功能的命令行选项
下表提供了用于启用可选的功能和支持的功能的命令行选项。
功能 | 命令行选项 |
---|---|
mTLS STRICT 模式 |
--set values.global.mtls.enabled=true |
Prometheus | --set values.prometheus.enabled=true |
Grafana(需要 Prometheus) |
--set values.prometheus.enabled=true \
|
将 Envoy 定向到 stdout | --set
values.global.proxy.accessLogFile="/dev/stdout" 如需了解详情,请参阅启用 Envoy 的访问日志记录。 |
Stackdriver 跟踪 | --set values.tracing.enabled=true \ --set
values.global.proxy.tracer="stackdriver" |
通过出站流量网关出站 |
--set values.gateways.istio-egressgateway.enabled=true
如需了解详情,请参阅网关。 |
示例
在 GKE 上安装 Anthos Service Mesh 的命令会使用以下环境变量:
设置您的 Google Cloud 项目 ID:
export PROJECT_ID=
YOUR_PROJECT_ID
设置项目编号:
export PROJECT_NUMBER=$(gcloud projects describe ${PROJECT_ID} --format="value(projectNumber)")
设置集群名称。
export CLUSTER_NAME=YOUR_CLUSTER_NAME
将
CLUSTER_LOCATION
设置为您的集群区域或集群地区。export CLUSTER_LOCATION=YOUR_ZONE_OR_REGION
设置工作负载池。
export WORKLOAD_POOL=${PROJECT_ID}.svc.id.goog
设置网格 ID,在 Google Cloud 控制台的 Anthos Service Mesh 页面上显示指标需要该 ID:
export MESH_ID="proj-${PROJECT_NUMBER}"
启用出站流量网关
如需在 PERMISSIVE
双向 TLS (mTLS) 身份验证模式下安装 Anthos Service Mesh 并启用出站流量网关:
GKE
istioctl manifest apply --set profile=asm \ --set values.global.trustDomain=${WORKLOAD_POOL} \ --set values.global.sds.token.aud=${WORKLOAD_POOL} \ --set values.nodeagent.env.GKE_CLUSTER_URL=https://container.googleapis.com/v1/projects/${PROJECT_ID}/locations/${CLUSTER_LOCATION}/clusters/${CLUSTER_NAME} \ --set values.global.meshID=${MESH_ID} \ --set values.global.proxy.env.GCP_METADATA="${PROJECT_ID}|${PROJECT_NUMBER}|${CLUSTER_NAME}|${CLUSTER_LOCATION}" \ --set values.gateways.istio-egressgateway.enabled=true
GKE On-Prem
istioctl manifest apply --set profile=asm-onprem} \ --set values.gateways.istio-egressgateway.enabled=true
启用 STRICT
mTLS 模式
如需在 STRICT
mTLS 模式下安装 Anthos Service Mesh:
GKE
istioctl manifest apply --set profile=asm \ --set values.global.trustDomain=${WORKLOAD_POOL} \ --set values.global.sds.token.aud=${WORKLOAD_POOL} \ --set values.nodeagent.env.GKE_CLUSTER_URL=https://container.googleapis.com/v1/projects/${PROJECT_ID}/locations/${CLUSTER_LOCATION}/clusters/${CLUSTER_NAME} \ --set values.global.meshID=${MESH_ID} \ --set values.global.proxy.env.GCP_METADATA="${PROJECT_ID}|${PROJECT_NUMBER}|${CLUSTER_NAME}|${CLUSTER_LOCATION}" \ --set values.global.mtls.enabled=true
GKE On-Prem
istioctl manifest apply --set profile=asm-onprem \ --set values.global.mtls.enabled=true
启用内部负载均衡器
对于 GKE 上的安装,可为 Istio 入站流量网关启用内部负载均衡器。GKE on VMware 不支持内部负载均衡器。如需了解如何配置 GKE on VMware,请参阅为 GKE on VMware 设置负载均衡器。
将以下文本复制到一个文件中,然后将其保存为
ilb.yaml
:apiVersion: install.istio.io/v1alpha2 kind: IstioControlPlane spec: values: gateways: istio-ingressgateway: serviceAnnotations: cloud.google.com/load-balancer-type: internal ports: - name: status-port port: 15020 - name: http2 port: 80 - name: https port: 443
在命令行中指定该文件:
istioctl manifest apply --set profile=asm \ --set values.global.trustDomain=${WORKLOAD_POOL} \ --set values.global.sds.token.aud=${WORKLOAD_POOL} \ --set values.nodeagent.env.GKE_CLUSTER_URL=https://container.googleapis.com/v1/projects/${PROJECT_ID}/locations/${CLUSTER_LOCATION}/clusters/${CLUSTER_NAME} \ --set values.global.meshID=${MESH_ID} \ --set values.global.proxy.env.GCP_METADATA="${PROJECT_ID}|${PROJECT_NUMBER}|${CLUSTER_NAME}|${CLUSTER_LOCATION}" \ -f ilb.yaml