注入 Sidecar 代理

Anthos Service Mesh 使用边车代理来增强网络安全性、可靠性和可观测性。借助 Anthos Service Mesh,这些功能可以从应用的主容器中抽象出来,并在作为同一 pod 中单独的容器提供的常见进程外代理中实现。为充分利用 Anthos Service Mesh 的功能,您可以在部署或重新部署工作负载时,将边车代理注入工作负载的 pod 中。该代理会拦截工作负载的所有入站和出站流量,并与 Anthos Service Mesh 通信。

启用自动 Sidecar 注入

您可以通过更新 pod 的 Kubernetes 配置来手动注入边车代理,也可以使用基于网络钩子的自动 Sidecar 注入。默认情况下,系统会为所有命名空间停用 Sidecar 自动注入。如需启用自动注入,请执行以下操作:

kubectl label namespace NAMESPACE istio-injection=enabled --overwrite

其中,NAMESPACE 是应用服务的命名空间的名称;如果未显式创建命名空间,则为 default

因为系统会在创建 pod 时注入 Sidecar,所以您必须重启任何正在运行的 pod,以使更改生效。

手动 Sidecar 注入

如需手动注入 Sidecar,请参阅安装 Sidecar

为现有 pod 更新 Sidecar

借助自动 Sidecar 注入,您可以通过 pod 重启来更新现有 pod 的 Sidecar:

如何重启 pod 取决于 pod 是否在 Deployment 中创建。

  1. 如果您使用了 Deployment,请重启 Deployment,这会重启所有安装了 Sidecar 的 pod:

    kubectl rollout restart deployment
    

    如果您未使用 Deployment,请删除 Pod,系统会自动重新创建 Pod 及其 Sidecar:

    kubectl delete pod -n YOUR_NAMESPACE --all
  2. 检查命名空间中的所有 Pod 是否都已注入 Sidecar:

    kubectl get pod -n YOUR_NAMESPACE --all

    在上一个命令的以下示例输出中,注意 READY 列表示每个工作负载均有两个容器:主容器和边车代理的容器。

    NAME                    READY   STATUS    RESTARTS   AGE
    YOUR_WORKLOAD           2/2     Running   0          20s
    ...
    

后续步骤

详细了解以下内容: