通过代理配置证书授权机构连接

本指南介绍了如何在来自 Sidecar 注入的工作负载的直接连接不可用时(例如,由于防火墙或其他限制功能)通过代理配置证书授权机构 (CA) 连接。此配置仅适用于使用 Certificate Authority Service 的 Cloud Service Mesh 安装。

在典型的集群内 Cloud Service Mesh 安装中,您可以在可直接连接到 CA 服务(例如 meshca.googleapis.comprivateca.googleapis.com)的应用 pod 中部署 Sidecar。在没有直接连接的情况下,您必须配置显式基于 CONNECT 的 HTTPS 代理。

前提条件

通过代理配置 CA 连接之前,请确保您已经:

  • 建立从所有 Sidecar 注入的 Pod 到 HTTPS 代理的网络连接。
  • 为已部署的 HTTPS 代理授予对所有 Google Cloud 服务的访问权限。

配置 ProxyConfig 自定义资源

  1. 配置 Istio ProxyConfig 自定义资源 (CR) 以注入要指向 HTTPS 代理的边车代理。例如:

    apiVersion: networking.istio.io/v1beta1
    kind: ProxyConfig
    metadata:
     labels:
      istio.io/rev: <istio-rev>   # To target proxies mapped to a specific control plane if needed.
     name: test-proxy-inject
     namespace: istio-system      # To ensure side-cars injected into all namespaces process this CR
    spec:
     environmentVariables:
      CA_PLUGIN_PROXY_URL: http://<proxy-service>.<proxy-ns>:<proxy-port>
    

    其中:

    • CA_PLUGIN_PROXY_URL 是 Sidecar 使用的配置,用于与代理建立 CONNECT 握手,然后代理将所有以 CA 为目标的流量转发到相关端点。
    • proxy-service 部署在 proxy-ns 命名空间中,并监听 proxy-port 端口上的 CONNECT 握手。此环境变量的格式类似于标准 HTTPS_PROXY 环境变量。
  2. 安装 Cloud Service Mesh 控制平面后,在集群上应用适当的 ProxyConfig CR(在步骤 1 中配置),然后在 Cloud Service Mesh 标记的命名空间中重启工作负载,以确保配置正确注入到 Sidecar。边车需要此配置才能从 CA 获取签名工作负载证书,这可确保边车注入的 pod 可以启动。