在代管式 Anthos Service Mesh 上启用可选功能

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

本页面介绍如何在代管式 Anthos Service Mesh 控制平面上启用可选功能。如需了解集群内控制平面,请参阅在集群内控制平面上启用可选功能

如果您当前正在使用基于 IstioOperator 的配置,从 IstioOperator 迁移工具可帮助转换为代管式控制平面支持的配置。

Envoy 访问日志

运行以下命令以启用 Envoy 访问日志记录:

  1. 运行以下命令以添加 accessLogFile: /dev/stdout

    cat <<EOF | kubectl apply -f -
    apiVersion: v1
    data:
      mesh: |-
        accessLogFile: /dev/stdout
    kind: ConfigMap
    metadata:
      name: istio-release-channel
      namespace: istio-system
    EOF
    

    其中,release-channel 是您的发布渠道asm-managedasm-managed-stableasm-managed-rapid)。

  2. 运行以下命令以查看 configmap:

    kubectl get configmap istio-release-channel -n istio-system -o yaml
    
  3. 如需验证访问日志记录已启用,请确保 mesh: 部分中显示 accessLogFile: /dev/stdout 行。

    ...
    apiVersion: v1
    data:
      mesh: |
        ....
        accessLogFile: /dev/stdout
    ...
    

启用 Cloud 跟踪

运行以下命令以启用 Cloud Trace:

  1. 运行以下命令:

    cat <<EOF | kubectl apply -f -
    apiVersion: v1
    data:
      mesh: |-
        defaultConfig:
          tracing:
            stackdriver: {}
    kind: ConfigMap
    metadata:
      name: istio-release-channel
      namespace: istio-system
    EOF
    

    其中,release-channel 是您的发布渠道asm-managedasm-managed-stableasm-managed-rapid)。

  2. 运行以下命令以查看 configmap:

    kubectl get configmap istio-release-channel -n istio-system -o yaml
    
  3. 如需验证 Cloud Trace 是否已启用,请确保 mesh: 部分中显示以下行:

    ...
    apiVersion: v1
    data:
      mesh: |
        ....
        defaultConfig:
          tracing:
            stackdriver:{}
    ...
    
  4. 重启代理。 请注意,跟踪器配置目前是代理引导配置的一部分,因此每个 pod 需要重启并重新注入才能获取跟踪器更新。例如,您可以使用以下命令重启属于某个部署的 pod:

kubectl rollout restart deployment -n NAMESPACE DEPLOYMENT_NAME

如需详细了解支持的跟踪标头,请参阅跟踪上下文传播

Distroless 代理映像

最佳做法是将容器运行时的内容限制为仅包含必要的软件包。此方法可提高常见漏洞和披露 (CVE) 扫描程序的安全性和信噪比。Istio 提供基于 Distroless 基础映像的代理映像。

以下配置可为整个 Anthos Service Mesh 启用 Distroless 映像。映像类型更改要求每个 pod 重启并重新注入才能生效。

     apiVersion: v1
     kind: ConfigMap
     metadata:
       name: istio-release-channel
       namespace: istio-system
     data:
       mesh: |-
         defaultConfig:
           image:
             imageType: distroless

Distroless 映像不包含代理以外的任何二进制文件。因此,无法使用 exec shell 或使用容器中的 curlping 或其他调试实用程序。如果您需要为特定部署访问这些工具,则可以使用以下 Pod 注解替换 imageType

sidecar.istio.io/proxyImageType: debug

通过注解更改部署的映像类型后,部署应重启。

kubectl rollout restart deployment -n NAMESPACE DEPLOYMENT_NAME

对于大多数代理调试类型,应使用 istioctl proxy-cmd,它无需调试基础映像。