我正在 Kubernetes 环境中将 Cilium 与 Istio 集成,需要明确特定配置将如何影响此集成。根据 Cilium 的官方doc,有问题的两个关键配置是:
Configuration A: Running Cilium with kube-proxy enabled.
Configuration B: Running Cilium without kube-proxy, using kubeProxyReplacement.
目标是了解每种配置对 Istio 功能和稳定性的具体影响。我主要关心的是确保 Istio 的 sidecar 代理的流量不会中断,特别是考虑到 Cilium 基于套接字的负载平衡 (socket-lb)。
How would each configuration interact with Istio's sidecar proxies?
Are there known issues or significant differences in performance, network stability, or compatibility with Istio between these two configurations?
洞察力,尤其是那些在生产环境中拥有 Cilium 和 Istio 经验的人的洞察力,将是无价的。
Cilium 的 kube-proxy 替换的套接字级负载均衡组件确实会导致 sidecar 重定向被跳过。
为了避免这种情况,Cilium 提供了一个选项来禁用托管 Pod 的套接字级负载平衡。可以使用
socketLB.hostNamespaceOnly=true
(Helm) 或 bpf-lb-sock-hostns-only=true
(Cilium ConfigMap) 启用它。请参阅相关文档了解更多信息。
我不知道 Istio 和 Cilium 的 kube-proxy 替代品之间存在任何其他不兼容性。