问题标签 [kube-proxy]

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 投票
2 回答
1335 浏览

kubernetes - kube-proxy 的可扩展性

我在试用 kubernetes 集群时遇到了可扩展性问题。为了简化我的测试机器中的拓扑结构,NodePort 类型用于在外部公开单个服务。托管节点和主节点的裸机是具有 24 个 CPU 和 32G RAM 的 RHEL 7;我还没有专门的负载均衡器,或者像基础设施这样的云提供商。服务定义的片段如下所示

通过这种方式,应用程序可以通过https://[node_machine]:30443/[a_service]

此类服务仅由一个 Pod 支持。理想情况下,我希望在同一个节点上部署多个服务(但使用不同的 NodePort),并同时运行。

事情一直运行良好,直到很明显对于类似的工作负载,增加部署的服务数量(因此也是后端 pod)会使应用程序的性能下降。令人惊讶的是,在分解服务加载时间时,我注意到“连接时间”显着下降,这似乎表明“网络”层的某个地方出现了减速。请注意,负载还不足以驱动节点上的大部分 CPU。我阅读了文档中的缺点,但不确定我遇到的是否正是那里描述的 kube-proxy/Service 的限制。

问题是:

  1. 关于如何使其更具可扩展性有什么建议吗?即能够在不影响应用程序性能的情况下支持更多服务/Pod?NodePort 类型是为我们的服务设置“公共”地址的最简单方法,但如果所有服务和 Pod 都以这种方式设置,是否对可扩展性或性能有任何限制?

  2. 如果我们将类型更改为 LoadBalancer 会有什么不同吗?“类型”:“负载平衡器”

  3. 此外,使用专用的 LoadBalancer 或反向代理来提高可扩展性(例如 HAProxy 等)将流量从外部路由到后端 Pod(或服务)是否有好处?我注意到为 Nginx darkgaro/kubernetes-reverseproxy 做了一些工作——不幸的是,文档似乎不完整,并且没有具体的例子。在其他一些线程中,人们谈到了 Vulcan - 它是 Kubernetes 推荐的 LB 工具吗?

非常感谢您的推荐和帮助!

0 投票
2 回答
428 浏览

kubernetes - 跨机器的 Kube 代理负载均衡

我的理解是 Kube-proxy 可以对跨机器运行的服务进行负载均衡?有人可以确认,这就是它的设计目的.. Rgs

0 投票
1 回答
4936 浏览

kubernetes - iptables 模式下的 kube-proxy 无法正常工作

我有

  • Kubernetes:v.1.1.1
  • iptables v1.4.21
  • 内核:4.2.0-18-generic,Ubuntu 自带
  • 网络通过在交换机上终止的 L2 VLAN 完成
  • 没有云提供商

我所做的

我正在尝试使用 kube-proxy 的 iptables 模式。我用--proxy_mode=iptables参数启用了它。似乎缺少一些规则:

当我请求服务 ip 时,在我的情况下它是 10.116.0.2 我收到一个错误

而当我向 10.116.160.7 服务器发出请求时,它工作正常。我可以看到流量根本没有指向 kube-proxy 规则,所以可能缺少一些东西。

我将非常感谢有关缺少规则的任何提示

编辑 我用 thokin 要求的缺失信息更新了我的初始请求,他指出了调试 kube-proxy 的 iptables 规则的真正好方法,我可以通过以下方式确定我的问题:

然后我执行了以下命令: # nslookup kubernetes.default.svc.psc01.cluster 10.116.160.7 Server: 10.116.160.7 Address: 10.116.160.7#53

结果,我得到了不同的“源”地址和传出接口:

所以,通过添加路线

现在它工作正常!

0 投票
2 回答
616 浏览

kubernetes - How does kube-proxy loadbalancing

I understand that nodes in K8s cluster will all have kube-proxy running and any node can forward traffic for any service in the cluster.

Lets say I have a service with two replica pods which are running on two Nodes N1 and N2. The external load balancer forwards traffic to N3 and N4. The first request reaches N3 and N3's kube-proxy diverts the traffic to N1. The second request reaches N4 and N4's kube-proxy diverts the traffic to N2.

Do kube-proxys communicate with each other so that N4's kube-proxy is aware that earlier request was forwarded to N1 and so it should divert this request to N2 for proper load balancing or the decision is local to that kube-proxy and not coordinated across kube-proxy in which case it doesn't correctly load balance ?

0 投票
1 回答
7401 浏览

kubernetes - 如何调试 kube-proxy 中的错误:对等方重置连接

我的 kube-proxy 出现错误:

如何快速追踪哪个 pod 有 IP 10.2.11.253?我怎么知道是哪个请求,从哪个 pod 到哪个 pod?

或者我们可以将 kube-proxy 日志级别更改为详细或调试吗?

我遇到了另一个错误,同样connection reset的错误,但 IP 是节点的 IP

192.168.166.x是我的 kubernetes 节点子网,但是 kube-proxy 如何将请求转发到节点 IP?

我使用 kubelet 1.0.1 和 CoreOS v773.1.0(docker 1.7.1,内核 4.1.5)作为我的集群节点。

谢谢你的帮助!

0 投票
1 回答
8227 浏览

kubernetes - 用户空间模式在 kube-proxy 的代理模式中是什么意思?

kube-proxy 有一个选项叫 --proxy-mode,根据帮助信息,这个选项可以是userspaceiptables。(见下文)

我无法弄清楚用户空间模式在这里意味着什么。

谁能告诉我 kube-proxy 在用户空间模式下运行时的工作原理是什么?

0 投票
1 回答
303 浏览

kubernetes - kube-proxy 找不到默认/tomcat 的端点:http:缺少服务条目

我使用 OS Centos 7。我的 Pod:

我的服务:

服务看起来像:

和豆荚:

当我运行 Curl 时:

当时的 Kube-proxy 日志显示如下:

但是当我直接运行 curl 到 pod ip 地址和端口 8080 - 它工作正常。当我运行命令时 kubectl get endpoints

此输出中带有“none”的字段 ENDPOINTS 看起来很奇怪。怎么了?

0 投票
1 回答
418 浏览

kubernetes - Kube-proxy 与 Kubernetes master api 交互:config-sync-period

kube-proxy 从 master api 获取 Services 和 Endpoints 信息,但是如何呢?

根据这些链接:

http://kubernetes.io/docs/user-guide/services/#proxy-mode-iptables

https://github.com/kubernetes/kubernetes/blob/ee2a0694b649941fc0c3be606746db041b75b91d/cmd/kube-proxy/app/server.go

proxy好像是master api的观察者,所以proxy信息的更新是即时的。

但是,默认为 15 分钟的代理中的参数config-sync-period从 apiserver 刷新配置的频率。必须大于 0。 )是什么?

刷新了什么配置?

0 投票
1 回答
470 浏览

kubernetes - 如何配置 kube-proxy 以通过 https 连接到 apiserver?

从http://kubernetes.io/docs/admin/kube-proxy/阅读文档看起来我无法通过 https 连接到 apiserver。

调度程序和控制器管理器也是如此,但这两个可能应该与 apiserver 在同一台机器上运行,并且可以通过 localhost 连接。

但是代理呢?这应该远程连接到 apiserver。是否可以配置从代理到 apiserver 的身份验证和/或授权?

0 投票
1 回答
670 浏览

docker - Kubernetes Kube-Proxy Server:它可以在没有 iptables 的 nat 模块的情况下运行吗?

背景
在我们的环境中,iptables 的 nat 模块被禁用。所以我必须使用 '-b=none --iptables=false' 来启动 docker 守护进程,并且在使用 'docker run' 命令时总是添加 '--net host' 。

使用 kubernetes 时也会出现同样的问题。当我尝试启动“kube-proxy”服务时,出现错误:

有没有办法绕过这个?