通过代理配置证书授权机构连接
本指南介绍了如何在来自 Sidecar 注入的工作负载的直接连接不可用时(例如,由于防火墙或其他限制功能)通过代理配置证书授权机构 (CA) 连接。此配置仅适用于使用 Certificate Authority Service。
在典型的集群内 Cloud Service Mesh 安装中,您可以在可直接连接到 CA 服务(例如 meshca.googleapis.com
和 privateca.googleapis.com
)的应用 pod 中部署 Sidecar。在没有直接连接的情况下,您必须配置显式基于 CONNECT
的 HTTPS 代理。
前提条件
通过代理配置 CA 连接之前,请确保您已经:
- 建立从所有 Sidecar 注入的 Pod 到 HTTPS 代理的网络连接。
- 为已部署的 HTTPS 代理授予对所有 Google Cloud 服务的访问权限。
配置 ProxyConfig 自定义资源
配置 Istio ProxyConfig 自定义资源 (CR) 以注入要指向 HTTPS 代理的 Sidecar 代理。例如:
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
环境变量。
安装 Cloud Service Mesh 控制平面后,在集群上应用适当的
ProxyConfig
CR(在步骤 1 中配置),然后在 Cloud Service Mesh 标记的命名空间中重启工作负载,以确保配置正确注入到 Sidecar。边车需要此配置才能从 CA 获取签名工作负载证书,这可确保边车注入的 pod 可以启动。