Anthos Service Mesh 1.6

注入 Sidecar 代理

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

启用自动 Sidecar 注入

您可以通过更新 pod 的 Kubernetes 配置来手动注入 Sidecar 代理,也可以使用基于网络钩子的自动 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 -n YOUR_NAMESPACE

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

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

    kubectl get pod -n YOUR_NAMESPACE

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

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

后续步骤

详细了解以下内容: