服务网格 ASM 支持通过 Sidecar 代理来增强服务调用之间的网络安全性、可靠性以及可观测性。本文介绍如何安装 Sidecar 代理。 背景信息
Sidecar 所支持的功能可以从应用程序的容器中抽象出来,并在作为同一 Pod 中的独立容器提供的代理中实现。为了充分利用这些功能,应用程序中的每个服务都需要在其 Pod 中运行一个 Envoy Sidecar 代理。Envoy 代理拦截到该服务的所有入站和出站 HTTP 通信,并与服务网格 ASM 提供的控制平面 Pilot 组件通信。 步骤一:启用 Sidecar 注入 默认情况下,对所有命名空间禁用 Sidecar 自动注入。可以通过更新 Pod 的 Kubernetes 配置手动注入 Envoy 代理,也可以使用基于 Webhook 的机制自动注入。执行以下命令,启用自动注入:
kubectl label namespace NAMESPACE istio-injection=enabled --overwrite
说明 其中,NAMESPACE 表示应用程序服务对应的命名空间,如果没有指定则会使用 default 命名空间。 步骤二:重新启动 Pod 由于在创建 Pod 时会注入 Sidecar,因此必须重新启动正在运行的 Pod 才能使更改生效。 注意 请在测试环境中反复进行重新启动 Pod 的验证测试,以确保您的服务可以处理任何潜在的流量中断。
重新启动 Pod 的方式取决于 Pod 是否作为 Deployment 的一部分创建。
如果使用了 Deployment,请重新启动 Deployment,这将重新启动所有带有 Sidecar 的 Pod。
kubectl rollout restart deployment -n NAMESPACE
如果没有使用 Deployment,请删除 Pod,然后 Pod 将会自动重新创建。
kubectl delete pod -n NAMESPACE --all
检查 Pod 是否都注入了 Sidecar。每个工作负载都有两个容器:主容器和Sidecar 代理容器。
kubectl get pod -n NAMESPACE --all
Sidecar 用于配置 Sidecar 代理,该代理负责调优与应用实例的出口和入口通信。本文介绍如何新建、修改和删除 Sidecar。
新建 Sidecar 登录 ASM 控制台。 在左侧导航栏,选择服务网格 > 网格实例。 在网格实例页面,找到待配置的实例,单击实例的名称或在操作列中单击管理。 在控制平面区域,选择 Sidecar 页签,然后单击新建。 在新建页面,输入 Sidecar 的信息,单击确定。 在命名空间下拉列表中,选择待新建 Sidecar 的命名空间。 在文本框中,输入 Sidecar 的配置信息。 在 Sidecar 页签,可以看到新建的 Sidecar。 修改 Sidecar 在控制平面区域的 Sidecar 页签,找到待修改的 Sidecar,在操作列中单击 YAML 。 在编辑实例页面,修改 Sidecar,单击确定。 删除 Sidecar 在控制平面区域的 Sidecar 页签,找到待删除的 Sidecar,在操作列中单击删除。 单击确定,确认删除该 Sidecar。 单击刷新,在Sidecar页签下,可以看到该 Sidecar 已被删除。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。