问题标签 [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.
kubernetes - 无法确保 ip set: &{{KUBE-NODE-PORT-TCP ...} 存在,错误:创建 ipset KUBE-NODE-PORT-TCP 时出错,错误:退出状态 2
Kubernetes 版本:v1.11.0
我用 ipvs 模式运行 kube-proxy,得到这个错误:
根据源码,我手动构造了命令,例如:
没关系,我可以获取 ipset 信息,例如:
我不知道这个问题。
kubernetes - Kubernetes Ingress 控制器与 kube-proxy
入口控制器是第 7 层结构。它是否绕过服务(VIP)和第 4 层 kube 代理?
kubernetes - Kubernetes(连接)-具有本地持久存储的排水节点
我们使用本地持久存储作为 SOLR pod 的存储后端。Pod 被冗余调度到多个 Kubernetes 节点。如果其中一个节点出现故障,其他节点上总会有足够的实例。
如果我们想对一个节点进行维护,我们如何排空这些节点(而不是将 SOLR pod“迁移”到其他节点)?对我们来说最重要的是 kube-proxy 将不再向相关节点上的 Pod 发送新请求,这样一段时间后我们就可以在不中断运行请求的服务的情况下进行维护。
我们尝试了警戒线,但警戒线只会确保没有新的 Pod 被安排到节点上。Drain 似乎不适用于具有本地持久卷的 pod。
kubernetes - Kube-proxy 或 ELB“延迟”HTTP 请求的数据包
我们在 AWS 的 Kubernetes (1.9.3) 上运行一个 Web API 应用程序(使用 KOPS 设置)。该应用程序是一个部署,由一个服务(类型:LoadBalancer)表示,它实际上是 AWS 上的 ELB(v1)。这通常有效 - 除了某些数据包(HTTP 请求的片段)在客户端 <-> 应用程序容器之间的某处“延迟”。(在 ELB 上终止的 HTTP 和 HTTPS 中)。
从节点端:
(注意:几乎所有服务器端的数据包都重复 3 次到达)
我们使用 keep-alive,因此 tcp 套接字是打开的,请求到达和返回的速度非常快。然后问题发生了:
- 首先,一个只有标头的数据包到达 [PSH,ACK] (我看到带有 tcpdump 的有效负载中的标头)。
- 一个 [ACK] 由容器发回。
- tcp 套接字/流在很长一段时间内都很安静(最多 30 秒或更长时间- 但间隔不一致,我们认为 > 1 秒是一个问题)。
- 另一个带有 HTTP 数据的 [PSH, ACK] 到达,最终可以在应用程序中处理请求。
从客户端:
我已经从我的计算机运行了一些流量,将其记录在客户端以查看问题的另一端,但不能 100% 确定它代表真正的客户端。
- 带有标题的 [PSH,ASK] 熄灭。
- 一些带有部分有效负载的 [ACK] 开始发出。
- 几秒钟(或更长时间)没有响应到达,也没有更多的数据包出去。
- 标记为[TCP Window update]的[ACK]到达。
- 再次短暂暂停,[ACK] 开始到达,会话继续,直到有效负载结束。
这仅在负载下发生。
据我了解,这介于 ELB 和 Kube-Proxy 之间,但我一无所知并且迫切需要帮助。
这是 Kube-Proxy 运行的参数:
Commands: /bin/sh -c mkfifo /tmp/pipe; (tee -a /var/log/kube-proxy.log < /tmp/pipe & ) ; exec /usr/local/bin/kube-proxy --cluster-cidr=100.96.0.0/11 --conntrack-max-per-core=131072 --hostname-override=ip-10-176-111-91.ec2.internal --kubeconfig=/var/lib/kube-proxy/kubeconfig --master=https://api.internal.prd.k8s.local --oom-score-adj=-998 --resource-container="" --v=2 > /tmp/pipe 2>&1
我们使用 Calico 作为 CNI:
到目前为止,我已经尝试过:
- 使用
service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
- 问题仍然存在。 - (玩弄 ELB 设置,希望能解决问题¯_(ツ)_/¯)
- 在 Kube-Proxy 中查找错误,发现很少出现以下情况:
E0801 04:10:57.269475 1 reflector.go:205] k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/factory.go:85:无法列出 *core.Endpoints:获取https://api。 internal.prd.k8s.local/api/v1/endpoints?limit=500&resourceVersion=0:拨号 tcp:在 10.176.0.2:53 上查找 api.internal.prd.k8s.local:没有这样的主机
...和...
E0801 04:09:48.075452 1 proxier.go:1667] 无法执行 iptables-restore:退出状态 1(iptables-restore:第 7 行失败) I0801 04:09:48.075496 1 proxier.go:1669] iptables 后关闭本地端口- 恢复失败
我找不到任何描述此类问题的内容,并将不胜感激。欢迎提出有关如何继续和排除故障的想法。
最好的,一个
kubernetes - 在 Kubernetes 节点上重启后删除 iptables 规则
手动添加一些 iptables 规则并重新启动机器后,所有规则都消失了(无论规则类型如何)。
前任。
重启后:
如果我没记错的话,kube-proxy
在每个节点上运行都是动态修改iptables
. 如果这是正确的,我如何添加永久的规则但仍然使 kubernetes/kube-proxy 能够做到这一点,而不是删除Kubernetes 和 Weave 插件网络动态生成的所有INPUT
,FORWARD
和规则?OUTPUT
kubernetes - 在 Kubernetes 节点上实现 iptables 规则
我想在 Kubernetes (kube-proxy) 开始发挥神奇作用之前实现我自己的 iptables 规则,并根据节点上运行的服务/pod 动态创建规则。kube-proxy 正在运行--proxy-mode=iptables
。
每当我在启动节点时尝试加载规则时,例如在链中,即使我的规则也带有标志INPUT
,Kubernetes 规则 (KUBE-EXTERNAL-SERVICES
和) 也会插入到链的顶部。KUBE-FIREWALL
-I
我错过了什么或做错了什么?
如果它以某种方式相关,我正在为 pod 网络使用 weave-net 插件。
kubernetes - 如何删除 kube-proxy 添加的 iptables 规则?
我想手动删除 iptables 规则进行调试。我有几个由 kube-proxy 基于 service 创建的规则nettools
:
以及它的iptables规则:</p>
但是,我不能删除这些规则:
kubernetes - 在 POD 中使用 Service 的 ClusterIP 地址
我正在使用集群 IP 类型的 Kubernetes 服务,它将公开一个部署。在我的容器中,我想使用服务 IP(集群 IP)。有什么方法可以获取 Pod/容器内的 IP 地址吗?
是否可以从服务名称中获取集群 IP?
kubernetes - kube-proxy:另一个应用程序当前持有 xtables 锁
我们在 Ubuntu 上运行 1.10 的 Kubernetes 集群中遇到了间歇性连接/dns 问题。
我们一直在查看错误报告/等,最近我们可以确定一个进程正在保留/run/xtables.lock
,它导致 kube-proxy pod 出现问题。
绑定到工作人员的 kube-proxy pod 之一在日志中重复出现此错误:
这些错误大约在 3 周前开始发生,到目前为止我们一直无法纠正。因为问题是间歇性的,我们直到现在才追查到这个问题。
我们认为这导致其中一个 kube-flannel-ds pod 也处于永久CrashLoopBackOff
状态:
大多数错误报告/run/xtables.lock
似乎表明它已在 2017 年 7 月解决,但我们在新设置中看到了这一点。我们似乎在 iptables 中有适当的链配置。
运行fuser /run/xtables.lock
什么也不返回。
有人对此有见识吗?它造成了很多痛苦
kubernetes - kube-proxy 不更新 iptables
我已经运行了 2 天的 k8s 集群,然后它开始出现奇怪的行为。
我的具体问题是关于 kube-proxy。kube-proxy 没有更新 iptables。
从 kube-proxy 日志中,我可以看到它无法连接到 kubernetes-apiserver(在我的情况下,连接是 kube-prxy --> Haproxy --> k8s API 服务器)。但 pod 显示为 RUNNING。
问:如果 kube-proxy pod 无法向 apiserver 注册事件,我预计它会关闭。
如何通过活性探针实现这种行为?
注意:杀死 pod 后,kube-proxy 工作正常。