启用可选功能

安装 Anthos Service Mesh 时,您可以指定 Anthos Service Mesh 配置文件,其用于启用在支持的功能页面上列出的支持的默认功能。Anthos Service Mesh 配置文件 asm.yamlasm-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

用于启用可选功能的命令行选项

下表提供了用于启用可选的功能和支持的功能的命令行选项。

功能 命令行选项
mTLS STRICT 模式 --set values.global.mtls.enabled=true
Prometheus --set values.prometheus.enabled=true
Grafana(需要 Prometheus) --set values.prometheus.enabled=true \
--set values.grafana.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 设置负载均衡器

  1. 将以下文本复制到一个文件中,然后将其保存为 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
    
  2. 在命令行中指定该文件:

    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