我kubelet抱怨:hyperkube代理,kubelet找不到的iptables鏈,RKT運行--net =主機
E1201 09:00:12.562610 28747 kubelet_network.go:365]未能確保 規則在過濾器鏈中丟棄由KUBE-MARK-DROP標記的數據包 KUBE-FIREWALL:錯誤追加規則:退出狀態1:iptables:否 按該名稱鏈/目標/匹配。
這通常發生在您忘記使用--net-host'rkt run'時,但我沒有。
出口RKT_OPTS =「 - 體積VAR日誌,善良=主機,源= /無功/日誌\
--mount體積= VAR日誌,目標= /無功/日誌\ --volume DNS ,種類=主機,源=的/ etc/resolv.conf的\ --mount 體積= DNS,目標=的/ etc/resolv.conf的--net =宿主」
下確認本人KUBE代理(由kubelet啓動)與擁有iptables鏈的主機在同一命名空間中:
[email protected]:/etc# d exec -it 738 readlink /proc/self/ns/net
net:[4026531963]
[email protected]:/etc# readlink /proc/self/ns/net
net:[4026531963]
[email protected]:/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的傑西運行碼頭工人1.12.3和1.18.0 RKT
無論是好工人問題工人正在運行iptables的相同版本,1.4.21
KUBELET_VERSION = V1。 4.6_coreos.0
症狀是問題員工上的kubernetes未安裝任何iptables規則,如KUBE-NODEPORTS,因此此工作人員無法偵聽NodePort服務。我認爲這是因爲以上原因。
問題工作者沒有問題運行主節點安排的窗格。
有問題的工作人員的豆莢正在運行在不同的(coreos)worker上的代理服務器請求正常。
我正在使用絨布進行網絡連接。
如果有人想知道,我需要得到kubernetes在Debian(是的,這是一個很長的故事)工作
什麼我還能做隔離似乎是kubelet沒有看到主機的iptables的?