kubernetes - tcp 连接如何在 kubernetes 负载均衡器中工作
问题描述
嗨,我正在运行 5 个副本 tcp-client(可以扩展)并将 3 个服务作为 LoadBalancer 公开给外部网络以获取传入连接。此客户端在内部侦听端口 7777,并映射到外部端口 17777、27777、37777。
豆荚
[root@pwconfig-k8s-master0 tcp_poc]# kubectl get pods -l app=tcp-client
NAME READY STATUS RESTARTS AGE
tcp-client-7dd545dcc9-54bdl 1/1 Running 0 4m47s
tcp-client-7dd545dcc9-628jn 1/1 Running 0 4m47s
tcp-client-7dd545dcc9-7pm44 1/1 Running 0 2m30s
tcp-client-7dd545dcc9-b287n 1/1 Running 0 4m47s
tcp-client-7dd545dcc9-mrmnm 1/1 Running 0 2m30s
服务
[root@pwconfig-k8s-master0 tcp_poc]# kubectl get svc | grep tcp-client
tcp-client ClusterIP y.y.y.y <none> 7777/TCP 4m36s
tcp-client-0 LoadBalancer y.y.y.y x.x.x.x 17777:30859/TCP 2m55s
tcp-client-1 LoadBalancer y.y.y.y x.x.x.x 27777:30089/TCP 2m55s
tcp-client-2 LoadBalancer y.y.y.y x.x.x.x 37777:31031/TCP 2m55s
我们已经看到这种行为,一旦任何外部客户端建立 tcp 连接,连接就会被特定的 pod 修复并保持活动状态,直到外部客户端关闭连接。我想知道路由和 tcp 连接是如何工作的,因为我可以看到 LoadBalancing 是通过外部客户端 tcp 连接而不是数据包。因此,如果有 100 个外部客户端,它将在客户端上进行负载平衡,并路由 tcp 连接并与 pod 一起修复 tcp 连接的生命周期。
感谢您的帮助。
解决方案
推荐阅读
- php - php - 使用 DateTime 获取日期时间从 date() 函数返回不同的值
- java - 带有条件的Android firebase方法链接
- sql-server - 天蓝色 sql DB_ID 不起作用
- c# - 附加类型为“ModelName”的实体失败,因为同一类型的另一个实体已经具有相同的主键值
- c++ - 具有三个参数的重载 operator new 和 operator delete
- python - 如何在不执行的情况下检查 python 2 脚本的错误
- python - 在python中获取以下内容的正则表达式
- javascript - 如何在 pugjs 中添加一个多于一个单词的样式属性
- javascript - 修改(前缀或后缀)现有正则表达式以从匹配项中排除尾随句点
- php - 使用 POST 时在刷新时确认表单重新提交行为