问题标签 [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.
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 中使用的代码,以根据标头进行路由:
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
- 从新的工作节点,可以连接到超过 6443 的主服务器 IP 地址
- 从新的工作节点,无法通过端口 443 访问集群 ip 10.233.0.1
- Calico、nodelocaldns 和 kube-proxy pod 在新节点上处于运行状态
- 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 连接被拒绝”
- ipvsadm -ln 输出不显示任何服务
- ip addr show 输出不显示 kube-ipvs0 和 calico 接口
有人可以帮忙吗。谢谢
kubernetes - 为什么 ipvs 调度程序不断回到 rr?
我有一个 k8s-master,一个 k8s-workernode。
我创建了 3 个 pod、1 个部署、1 个服务(type=ClusterIP
)。
并且 kube-proxy-mode 被修改为 ipvs。
固定集群 IP 从rr
到lc
。
但是,如果您在几秒钟后检查它,它会返回到rr
。这是为什么?
kubernetes - 如何自动更新 ipvs 信息?
我正在使用 kubernetes 并使用 kube-proxy 模式作为 ipvs(调度程序:lc)。
增加 pod(副本)时,ipvsadm 表信息不会更新。
因此,为了与新的 pod 进行负载均衡,必须删除并重新生成服务。
有没有办法在不重新创建服务的情况下自动更新 ipvs?
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 连接跟踪
一切正常,那么我应该如何处理上述错误?
networking - 在多个客户端的情况下,IPVS 粘性可以隐藏在单个 IP 地址后面
我在 AWS 实例上使用 minikube 集群。我已经用 kube-proxy 中的 iptables 替换了 IPVS,以实现会话亲和性。IPVS源散列算法用于实现会话亲和性,现在据我了解,源散列算法是在仅IP地址的基础上维护会话。如果多个用户从只有一个公共端点的专用网络连接,这是不合适的。在副本的情况下,来自该公共端点的流量始终定向到一个 pod,尽管它们可能是不同的用户。这留下了其他 pod 的理想状态。
期望的结果:
来自同一公共端点的不同用户应该被视为不同的用户,same-IP+unique-port
并且应该被引导到副本内的不同 Pod。
如何使用 IPVS 实现这一目标?
kubernetes - 具有 IPVS 模式的 Kube-proxy 不保持连接
我有一个带有ipvs
kube-proxy 模式的 k8s 集群和一个 k8s 之外的数据库集群。
为了访问数据库集群,我创建了服务和端点资源:
然后我用 MySQL 客户端运行一个 pod 并尝试连接到这个服务:
在网络转储中,我看到了成功的 TCP 握手和成功的 MySQL 连接。在 pod 正在运行的节点(以下称为工作节点)上,我看到了下一个已建立的连接:
然后我在打开的 MySQL 会话中从 pod 发送一些测试查询。它们都被发送到同一个节点。这是预期的行为。
然后我监视工作节点上已建立的连接。大约 5 分钟后,与数据库节点的已建立连接丢失。
但是在网络转储中,我看到 TCP 终结数据包没有从工作节点发送到数据库节点。结果,我在数据库节点上得到了一个泄漏的连接。
如何ipvs
决定放弃已建立的连接?如果ipvs
断开连接,为什么它不能正确完成 TCP 连接?这是一个错误还是我误解了ipvs
kube-proxy 中的模式?
kubernetes - Azure kubernetes 服务 (AKS) ,连接最少的负载均衡器
我需要制作一个基于“最少连接”工作的负载均衡器,这是 Kubernetes 网站上的文档: https ://kubernetes.io/docs/concepts/services-networking/_print/#proxy-mode-ipvs
看起来我需要使用 IPVS(代理模式),然后使用以下选项:
但我无法完成,(我使用的是 AKS 1.20.7)
我的问题:如何在 IPVS 代理模式下启动 kube-proxy?
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。
kubernetes - k8S 入口和 IPVS
我是 k8s 的新手,我对 ingress 和 IPVS 的用例有疑问。
根据我在互联网上的几篇文章中读到的内容,入口用于对 Pod 的南北流量进行负载平衡。那里有几种入口解决方案,例如 traefic-nginx-haproxy 等。我的问题是,IPVS 传输层负载平衡的用例是什么?我们可以将它用于 pod 之间的东西向流量吗?
如果我对上述内容有误解,请纠正我。
干杯