내 kubelet 불평 :hyperkube 프록시, kubelet는 iptables에 체인을 찾을 수없는, RKT 실행 --net = 호스트는
E1201 09 : kubelet_network.go 12.562610 28747 : 365]에 규칙을 확인하지 못했습니다 00 필터 체인에 KUBE-MARK-DROP으로 표시된 드롭 패킷 KUBE-FIREWALL : 규칙 추가 오류 : 종료 상태 1 : iptables : 아니요 해당 이름의 연결/대상/일치.
이것은 일반적으로 - net-host를 사용하여 'rkt run'하는 것을 잊었을 때 발생합니다.
수출 RKT_OPTS = "- 볼륨 VAR 로그, 종류 = 호스트, 소스 =/var에// \
--mount 볼륨 = VAR 로그, 대상 =/var에 로그 \ --volume DNS를 기록 =은/etc/경우 resolv.conf --net = 호스트 "
, 종류 = 호스트, 소스 =은/etc/경우 resolv.conf \ --mount 볼륨 = DNS, 대상 다음은 (내 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
프록시는 마찬가지로 "No chain/target/match that that name"이라고 불평합니다. 이 오류 메시지 (나는 생각한다)에 불만을 만족하고 (다른 시스템 I과 비교)에 문제가없는 coreos 노동자 필터 체인과 일치
# 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
:
나는 또한 iptables에 체인을 확인했습니다 .문제 노동자
는 고정 표시기 1.12.3 및 RKT 좋은 노동자와 문제가 노동자 모두의 iptables의 동일한 버전을 실행 1.18.0, 1.4.21
KUBELET_VERSION = V1을 실행하는 데비안 제시한다. 4.6_coreos.0
문제는 worker의 kubernetes가 KUBE-NODEPORTS와 같은 iptables 규칙을 설치하지 않기 때문에이 작업자가 NodePort 서비스를 수신 할 수 없다는 것입니다. 나는 그것이 위의 것 때문이라고 생각합니다.
문제 작업자는 마스터 노드가 예약 한 창을 실행하는 데 문제가 없습니다.
문제 작업자의 포드가 다른 (coreos) 작업자로 실행되는 프록시에서 요청을 처리 중입니다.
네트워킹 용 플란넬을 사용하고 있습니다.
사람이 궁금 해서요 경우에, 나는 데비안 (예, 그것의 긴 이야기) 작업는 Kubernetes을 얻을 필요가
내가 호스트의 iptables에 표시되지 kubelet 것으로 보인다 무엇인지 그 밖의 무엇을 분리하기 위해 무엇을 할 수 있는가?