2017-04-18 5 views
0

Ich habe zwei Maschinen in meinem netwrok, die ich aus dem Pod kommunizieren möchte.Kann nicht mit einem Computer im Netzwerk (außerhalb des k8s-Clusters) mit cidr 10.0.x.0/24 aus dem Pod kommunizieren

Ips ist wie folgt:

10.0.1.23 - Lets call it X 

13.0.1.12 - Lets call it Y 

Wenn ich den Master-Knoten oder Agentenknoten SSH in und zu tun dann einen Ping an X oder Y, das Ping erfolgreich ist. Daher sind die Maschinen erreichbar.

Jetzt ich eine Bereitstellung erstellen, logge ich mich in die Shell des Pods mit (kubectl exec -it POD_NAME — /bin/sh).

Ping zu Y ist erfolgreich. Aber Ping zu X schlägt fehl.

CIDR Details:

Master Node : 14.1.255.0/24 
Agent Node: 14.2.0.0/16 
Pod CIDR: 
    Agent : 10.244.1.0/24 
    Master: 10.244.0.0/24 

auf mein Verständnis, was das Problem sein könnte:

acs-Motor hat kube-Proxy-Setup das Servicenetz mit 10.0.0.0/16 Wenn dies das problem wie ändere ich den kube-proxy cidr?

Zusätzliche Information:

Ich bin mit acs-Motor für meinen Einsatz von Cluster.

Ausgang für ip route

default via 10.244.1.1 dev eth0 10.244.1.0/24 dev eth0 src 10.244.1.13

Ein weiterer Verdächtiger: Auf iptables-save läuft Ich sehe

-A POSTROUTING ! -d 10.0.0.0/8 -m comment --comment "kubenet: SNAT for outbound traffic from cluster" -m addrtype ! --dst-type LOCAL -j MASQUERADE

+0

Meinen Sie SSH zu kubernetes Meister und in der Lage zu pingen '10.0.1.22'? Diese IP ist eine Cluster-IP? –

+0

Standardmäßig können wir die Cluster-IP nicht vom Master aus anpingen, bitte führen Sie diesen Befehl aus, um iptables 'iptables-save' zu ​​überprüfen. –

+0

Meinst du, der Pod kann die IP-Adresse nicht aus k8s pingen? –

Antwort

0

Sie keinen Kubernetes Dienst anpingen kann. Mehr Informationen hier: https://github.com/kubernetes/kubernetes/issues/7996#issuecomment-100413276. Um die Konnektivität zu testen, können Sie einen einfachen Webserver an einem Port verfügbar machen und bestätigen, dass Sie sich innerhalb oder außerhalb des Containers einrollen lassen.

+0

Ich nehme über eine externe Maschine (außerhalb des K8s-Clusters). Und Ping zu den Maschinen in der äußeren Welt wird funktionieren. Aber eben nicht vom POd – Karthik

1

Basierend auf Ihrer Frage klingt es so, als hätten Sie dem k8 Virtual Network, das mit dem ACS Kubernetes Cluster bereitgestellt wird, ein weiteres Subnetz hinzugefügt.

Wie sich herausstellt, lief ich in diesem genau das gleiche Problem in unserem Projekt. Azure Container Services verwendet sehr spezifische Routingregeln für die Agentenknoten. Wenn der k8-Cluster bereitgestellt wird, erstellt er eine Routentabelle-Ressource in derselben Ressourcengruppe wie alle Cluster-Entitäten. Also, wenn Sie ...

  1. öffnen k8 Route-Tabelle in der Azure Portal
  2. Zum Subnetze Abschnitt
  3. + Mitarbeiterin mit dem Subnetz, die Ihren anderen VMs/PaaS-Dienste sind in

... damit werden die Routen erstellt, nach denen die k8-Agenten beim Routing des ausgehenden Pod-Container-Datenverkehrs suchen.

Verwandte Themen