【问题标题】:k8S Ingress and IPVSk8S 入口和 IPVS
【发布时间】:2022-01-02 17:22:07
【问题描述】:

我是 k8s 新手,有一个关于 ingress 和 IPVS 的用例的问题。

根据我在互联网上的几篇文章中读到的内容,Ingress 用于在流向 Pod 的南北流量中进行负载平衡。那里有几种入口解决方案,例如 traefic-nginx-haproxy 等。 我的问题来了,IPVS 传输层负载均衡的用例是什么? 我们可以将它用于 pod 之间的东西向流量吗?

如果我对上述内容有误解,请纠正我。

干杯

【问题讨论】:

  • 嗨@DimmySarris,Harsh Manvar 的回答能回答你的问题吗?如果是,请考虑accepting it

标签: kubernetes kubernetes-ingress ipvs


【解决方案1】:

IPVS 是 linux 内核级别的第 4 层负载平衡。

我在某处读到它每秒可以处理大约 100,000 个转发请求。

尽管 Kubernetes 在 v1.6 版本中已经支持 5000 个节点,但 带有 iptables 的 kube-proxy 实际上是扩展集群的瓶颈 到 5000 个节点。一个例子是 NodePort 服务在一个 5000 节点集群,如果我们有 2000 个服务,每个服务有 10 个 pods,这将导致每个工作人员至少有 20000 条 iptable 记录 节点,这会使内核非常繁忙。

例如:https://blog.titanwolf.in/a?ID=00700-de778e7d-72e7-4515-b822-18844b104abd

https://dustinspecker.com/posts/ipvs-how-kubernetes-services-direct-traffic-to-pods/

问题

IPVS 传输层负载均衡的用例是什么?

您可以使用 IPVS外部 IP 来公开在 K8s 集群内运行的服务而不是入口。

我们可以将它用于 pod 之间的东西向流量吗?

是的,您可以使用它。您可以在 IPVS 模式下运行 kube-proxy

所以 Kube 代理有 userspace、iptables 或 IPVS 三种模式

如果我用非常简单的话解释 iptables VS IPVS

在集群中运行 1000 个服务和 10000 个 POD 之前,性能不会发生太大变化。如果您在该级别上使用带有 Kube-proxy 的 IPVS 可能会帮助您并提高性能。

如果您不确定 IPVS 是否对您有利,请在 iptables 模式下坚持使用 kube-proxy。它在生产中的硬化程度更高。

您可以查看此文档了解更多信息:https://www.tigera.io/blog/comparing-kube-proxy-modes-iptables-or-ipvs/

【讨论】:

    猜你喜欢
    • 2019-08-12
    • 2018-07-17
    • 2021-03-04
    • 2020-05-14
    • 2021-05-16
    • 1970-01-01
    • 1970-01-01
    • 2022-10-02
    • 2020-04-24
    相关资源
    最近更新 更多