问题标签 [ipvs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
787 浏览

kubernetes - 在 Kubernetes 中使用最少连接来平衡流量

我有一个 Kubernetes 集群,其部署类似于下一个:

在此处输入图像描述

这里的目标是将应用程序部署在通过名为my-app. 在多个命名空间(A、B 和 C)中进行相同的部署,稍微更改应用程序的配置。然后,在某些节​​点中,我有一个使用 hostNetwork 绑定到节点端口的 HAProxy。这些 HAProxy 通过指向它们的 DNS (my_app.com) 向我的客户端公开。

当客户端连接到我的应用程序时,它们会发送一个标头,指定请求应重定向到的命名空间(A、B 或 C),并且 HAProxy 使用do-resolve类似 的 dns 条目解析服务的 IP,该条目my_app.A.svc.cluster.local返回的 IPmy_app命名空间中的服务A。这样,我的集群就可以有一个入口点(单个 DNS 记录)和一个端口(80),这是我的要求之一。我还能够创建新的命名空间并部署我的应用程序的其他配置,而无需修改 HAProxies,这是第二个要求。

现在,我收到的请求是短请求和长请求的混合,所以我需要在这里使用最少的连接。这在 HAProxies 中是不可能的,因为我没有后端列表(重定向是动态的,如您在下面的代码中所见)。我正在尝试将 kube-proxy 与 IPVS 和最少连接模式一起使用。我注意到的是,到不同 pod 的连接跟踪是按节点进行的,并且这些信息不会在不同节点之间共享。这样,如果两个my_app.com Namespace: A不同的节点处理两个请求,则两者都可以转到同一个 pod(例如 pod_1),因为在每个节点中,到该 pod 的活动连接数为 0。随着我增加问题,问题变得更糟DNS 后面的 HAProxy 数量。

如何在没有集群入口点的情况下解决这个问题并获得更好的平衡(在 DNS 后面有一个 HAProxy)?

我在这里添加了 HAProxy 中使用的代码,以根据标头进行路由:

0 投票
0 回答
165 浏览

kubernetes - Pod 没有在使用 kubespray 添加到 k8s 集群的新节点上获得计划/分配的 IP 地址

使用 kubespray 将工作节点添加到现有集群。已加入集群的节点,但节点上计划的新 pod 失败并出现错误“get https://10.233.0.1 : dial tcp 10.233.0.1: 443 connection denied”

网络插件 - 以 ipvs 模式运行的 calico kube-proxy

  1. 从新的工作节点,可以连接到超过 6443 的主服务器 IP 地址
  2. 从新的工作节点,无法通过端口 443 访问集群 ip 10.233.0.1
  3. Calico、nodelocaldns 和 kube-proxy pod 在新节点上处于运行状态
  4. Kube-proxy 日志显示错误“无效的 nodeIP,使用 127.0.0.1 作为 nodeIP 初始化 kube-proxy”无法写入事件:'Post https://127.0.0.1:6443/api/v1/namespaces/default/events dial tcp 127.0 .0.1:6443 连接被拒绝”
  5. ipvsadm -ln 输出不显示任何服务
  6. ip addr show 输出不显示 kube-ipvs0 和 calico 接口

有人可以帮忙吗。谢谢

0 投票
1 回答
163 浏览

kubernetes - 为什么 ipvs 调度程序不断回到 rr?

我有一个 k8s-master,一个 k8s-workernode。

我创建了 3 个 pod、1 个部署、1 个服务(type=ClusterIP)。

并且 kube-proxy-mode 被修改为 ipvs

固定集群 IP 从rrlc

但是,如果您在几秒钟后检查它,它会返回到rr。这是为什么?

0 投票
0 回答
150 浏览

kubernetes - 如何自动更新 ipvs 信息?

我正在使用 kubernetes 并使用 kube-proxy 模式作为 ipvs(调度程序:lc)。

增加 pod(副本)时,ipvsadm 表信息不会更新。

因此,为了与新的 pod 进行负载均衡,必须删除并重新生成服务。

有没有办法在不重新创建服务的情况下自动更新 ipvs?

0 投票
1 回答
981 浏览

kubernetes - 当使用 k8s 设置 ipvs 模式时,“无法设置 sysctl net/ipv4/vs/conn_reuse_mode”是什么意思?

当我将 kube-proxy 模式从 iptales 修改为 ipvs 时,重新启动 kube-proxy 后,“kubectl logs kube-proxy”返回以下错误:

server.go:485] 无法创建代理:无法设置 sysctl net/ipv4/vs/conn_reuse_mode:打开 /proc/sys/net/ipv4/vs/conn_reuse_mode:没有这样的文件或目录

我确认我已经通过以下 cmd 安装了依赖的内核模块:

lsmod | grep ip_vs lsmod | grep 连接跟踪

一切正常,那么我应该如何处理上述错误?

0 投票
0 回答
115 浏览

networking - 在多个客户端的情况下,IPVS 粘性可以隐藏在单个 IP 地址后面

我在 AWS 实例上使用 minikube 集群。我已经用 kube-proxy 中的 iptables 替换了 IPVS,以实现会话亲和性。IPVS源散列算法用于实现会话亲和性,现在据我了解,源散列算法是在仅IP地址的基础上维护会话。如果多个用户从只有一个公共端点的专用网络连接,这是不合适的。在副本的情况下,来自该公共端点的流量始终定向到一个 pod,尽管它们可能是不同的用户。这留下了其他 pod 的理想状态。

期望的结果:

来自同一公共端点的不同用户应该被视为不同的用户,same-IP+unique-port并且应该被引导到副本内的不同 Pod。

如何使用 IPVS 实现这一目标?

0 投票
1 回答
445 浏览

kubernetes - 具有 IPVS 模式的 Kube-proxy 不保持连接

我有一个带有ipvskube-proxy 模式的 k8s 集群和一个 k8s 之外的数据库集群。

为了访问数据库集群,我创建了服务和端点资源:

然后我用 MySQL 客户端运行一个 pod 并尝试连接到这个服务:

在网络转储中,我看到了成功的 TCP 握手和成功的 MySQL 连接。在 pod 正在运行的节点(以下称为工作节点)上,我看到了下一个已建立的连接:

然后我在打开的 MySQL 会话中从 pod 发送一些测试查询。它们都被发送到同一个节点。这是预期的行为。

然后我监视工作节点上已建立的连接。大约 5 分钟后,与数据库节点的已建立连接丢失。

但是在网络转储中,我看到 TCP 终结数据包没有从工作节点发送到数据库节点。结果,我在数据库节点上得到了一个泄漏的连接。

如何ipvs决定放弃已建立的连接?如果ipvs断开连接,为什么它不能正确完成 TCP 连接?这是一个错误还是我误解了ipvskube-proxy 中的模式?

0 投票
0 回答
101 浏览

kubernetes - Azure kubernetes 服务 (AKS) ,连接最少的负载均衡器

我需要制作一个基于“最少连接”工作的负载均衡器,这是 Kubernetes 网站上的文档: https ://kubernetes.io/docs/concepts/services-networking/_print/#proxy-mode-ipvs

看起来我需要使用 IPVS(代理模式),然后使用以下选项:

但我无法完成,(我使用的是 AKS 1.20.7)

我的问题:如何在 IPVS 代理模式下启动 kube-proxy?

0 投票
0 回答
26 浏览

kube-proxy - 具有多个接口的 Kube-proxy 和 IPVS 行为

我有一个单节点部署,有 2 个接口 eth1 和 eth0,并且都有 IP。用于 k8 的 API 服务器和 eth0 IP 的 eth1 Ip 是免费的

如果我在主机上 curl http://k8 服务 IP:443,我可以看到来自 eth0 IP 到 6443 的请求,如下所示。

tcpdump -i 任何主机 eth0 IP -n -l -vvnneSs 0 eth0 IP.54396 > eth1 IP.6443:标志 [.], seq 204817749, ack 1289915650, win 342, options [nop,nop,TS val 2724252045 ecr 215140255] , 长度 0

为什么我看到上述行为。我正在使用带有 IPVS 模式的 kube-proxy。

0 投票
1 回答
60 浏览

kubernetes - k8S 入口和 IPVS

我是 k8s 的新手,我对 ingress 和 IPVS 的用例有疑问。

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

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

干杯