도커 컨테이너가 GCE (또는 정확히 어떻게 작동하는지)에 대해 약간 개략적으로 설명하지만 IIRC는 컨테이너가 자체 주소 공간에서 주소 지정 될 수 있도록 오버레이 네트워크가 구축되었습니다. 이는 대개 호스트와 컨테이너 사이에 가상 네트워크 인터페이스 쌍을 작성하여 수행됩니다. 호스트 시스템에 추가되는 오버레이 네트워크 (https://docs.docker.com/articles/networking/#binding-container-ports-to-the-host에서) 이런 가장 무도회 규칙 나가려면
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 172.17.0.0/16 !172.17.0.0/16
오버레이 네트워크는 같은 호스트 네트워크와 충돌하지하기로하지만,이 경우 선택하도록되어 오버레이 네트워크가 GCE 내부 네트워크와 겹치면 컨테이너에서 오버레이 네트워크로의 연결이 작동하지 않습니다.
나는 그것이 작동하지 않는 이유 질문에 대답 할 수없는, 그러나 나는 시도하는 것을 제안 할 수 있습니다 :
이러한 문제를 디버깅하는 일반적인 방법은 (실패) 요청의 스트림을 생성 뭔가를 실행 한 다음 패킷이 각 단계에 흐름을 참조하는 것입니다 연결 시도와 패킷이 어떻게 생겼는지가 있는지 여부 :
- IP 링크 쇼 및/또는 IP 요지 쇼 (인터페이스를 찾을 수)
- 는 tcpdump -n -v -c 10 -i,080,543,210 인터페이스 > TCP 포트 3000
그리고이 작업을 수행 : 컨테이너 가상 인터페이스에, 용기에
- 가 고정 표시기 호스트
- (eth0를해야한다) (veth < 뭔가를 >)
도커 호스트의
- 호스트 네트워크 인터페이스 (eth0)
- aerospike 호스트 (eth0)
이 정보는 문제가 발생한 위치를 찾아내는 데 도움이되며 패킷 덤프로 인해 문제가 발생한 이유를 알 수 있습니다.
문제는 kubernetes, 다른 VM의 ping, 또는 내가 만든 작품의 도커 컨테이너에서 발생한다고 생각합니다. – Alloys