我的库贝利特抱怨道:
E1201 09:00:12.562610 28747 kubelet_network.go:365]未能确保在过滤链KUBE防火墙中删除标记为KUBE的数据包的规则:错误附加规则:退出状态1: iptables:无链表/目标/匹配。
这种情况通常发生在你忘记与
导出RKT_OPTS=“-卷var-log,kind=host,source=/var/log \ -挂载卷=var-log,目标值=/var/log\-卷dns,kind=host,source=/etc/conv.conf\--挂载volume=dns,target=/etc/解析/host net=主机“
以下内容确认了我的kube代理(由kubelet启动)与拥有iptables链的主机位于同一个名称空间中:
root@i8:/etc# d exec -it 738 readlink /proc/self/ns/net
net:[4026531963]
root@i8:/etc# readlink /proc/self/ns/net
net:[4026531963]
root@i8:/etc# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
738ed14ec802 quay.io/coreos/hyperkube:v1.4.6_coreos.0 "/hyperkube proxy --m" 44 minutes ago Up 44 minutes k8s_kube-proxy.c445d412_kube-proxy-192.168.101.128_kube-system_438e3d01f328e73a199c6c0ed1f92053_10197c34代理也同样地抱怨“没有按该名称链接/目标/匹配”。
我还核实了iptables的链:
# Completed on Thu Dec 1 01:07:11 2016
# Generated by iptables-save v1.4.21 on Thu Dec 1 01:07:11 2016
*filter
:INPUT ACCEPT [4852:1419411]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [5612:5965118]
:DOCKER - [0:0]
:DOCKER-ISOLATION - [0:0]
:KUBE-FIREWALL - [0:0]
:KUBE-SERVICES - [0:0]
-A INPUT -j KUBE-FIREWALL
-A FORWARD -j DOCKER-ISOLATION
-A FORWARD -o docker0 -j DOCKER
-A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i docker0 ! -o docker0 -j ACCEPT
-A FORWARD -i docker0 -o docker0 -j ACCEPT
-A OUTPUT -j KUBE-SERVICES
-A OUTPUT -j KUBE-FIREWALL
-A DOCKER-ISOLATION -j RETURN
-A KUBE-FIREWALL -m mark --mark 0x8000/0x8000 -j DROP
COMMIT这满足了错误消息中的抱怨(我认为),并匹配无问题coreos工作人员(与我相比不同的机器)上的过滤器链。
问题工人是Debian Jessie运行码头1.12.3和rkt 1.18.0
好工人和问题工作者都在运行相同版本的iptables,1.4.21
KUBELET_VERSION=v1.4.6_coreos.0
其症状是问题工作者上的kubernetes没有安装任何iptables规则,比如kubernetes,因此该工作人员无法侦听NodePort服务。我想是因为上面的原因。
问题工作者在运行主节点计划的豆荚时没有问题。
问题工作者上的Pods正在处理来自运行在另一个(coreos)工作人员上的代理的OK请求。
我用法兰绒做人际关系网。
如果有人想知道,我需要让库伯内特斯在Debian上工作(是的,说来话长)
我还能做些什么来隔离那些看不见主人的iptables的东西呢?
发布于 2016-12-10 01:40:42
经过多次故障隔离,我找到了原因和解决方案。
在我的例子中,我运行的是一个自定义内核pkg (Linux),它缺少几个与iptables相关的内核模块。因此,当kubelet试图添加包含注释的iptables规则时,由于没有加载xt_comment,它出错了。
这些是我缺少的模块: ipt_REJECT、nf_conntrack_netlink、nf_reject_ipv4、sch_fq_codel (可能不是必需的)、xt_comment、xt_mark、xt_recent、xt_statistic
为了获得我可能需要的完整模块列表,我登录了一个CoreOS kubernetes工作人员并查看了它的lsmod。然后把这个列表和我的“问题”机器做比较。
发布于 2019-09-03 11:15:18
在使用牧场主的k8s 1.3.1运行k8s时,我在一个带有自定义内核配置的gentoo盒上出现了这个问题。用所有正常的iptables + xt_comment重新构建内核为我解决了这个问题。
https://stackoverflow.com/questions/40906797
复制相似问题