2016-07-28 22 views
1

Nachdem ich einen kubernetes-Cluster mit Calico für die One-IP-pro-pod-Vernetzung eingerichtet habe, frage ich mich, wie es am besten ist, Dienste der Außenwelt zugänglich zu machen.Best Practice, um Service in Kubernetes mit Calico anzuzeigen

IMHO Ich habe zwei Optionen hier, BGP'ing die internen pod IP's (172 ...) zu einem Edge Router/Firewall (Vyos in meinem Fall) und tun ein SNAT auf der Firewall/Router. Aber dann müsste ich eine öffentliche IP pro Pod zur Verfügung stellen.

Pro: weniger öffentliche IP-Adressen müssen verwendet werden Con: Pod-Änderungen müssen aktualisierte Firewall-Regeln ?!

Oder 2nd: Nehmen Sie das zur Verfügung gestellte öffentliche Netzwerk und übergeben Sie es an Calico als IP-Pool für die Pods verwendet werden. Con: viele öffentliche IPs verschwendet für interne Dienste, die nicht mit dem Internet ausgesetzt werden

Hoffe jemand könnte mich aufklären oder mich in die richtige Richtung zeigen.

Danke!

Antwort

1

Calico bietet keine spezielle Möglichkeit, Dienste in Kubernetes verfügbar zu machen. Sie sollten Standard-Kubernetes-Dienste, Knotenports und Ähnliches verwenden, um Ihre Dienste verfügbar zu machen. In der Zukunft wird Calico möglicherweise einige der Funktionen anbieten, die Kube-Proxy derzeit für Kubernetes bietet (z. B. das Aufdecken von Service-IPs), aber im Moment passt Calico nur auf die Low-Level-Netzwerk-API-Ebene. Calicos echte Stärke in der Kubernetes-Integration ist die Möglichkeit, Netzwerksicherheitsrichtlinien mithilfe der neuen Netzwerk-API von Kubernetes zu definieren.

Quelle: Ich bin einer der wichtigsten Entwickler von Calico.

+0

Hallo Fasaxc, zuerst, danke für deine Antwort und für deine Arbeit an Calico, ich denke, es ist ein großartiges Projekt. Meine Frage entstand aus einem Video vom CoreOS Fest '15, in dem Spike Curtis sagte, dass Sie Calico direkt mit Ihrer Infrastruktur verbinden könnten, um Routen außerhalb Ihres Rechenzentrums zu bewerben, damit sich die Leute direkt einwählen können richtig gemacht werden. Schau dir das [Video um 13:05] an (https://www.youtube.com/watch?v=44wOK9ObAzk&feature=youtu.be&t=13m05s) –

+0

Wenn du OpenStack oder Raw Docker ausführst, sag, dann würdest du nur habe eine Reihe von IPs, die ausgesetzt wären. Der Unterschied ist, Kubernetes hat seine Service-Infrastruktur, die vor den Pod-IPs sitzt. Wir haben dieses Merkmal von Kubernetes nicht "übernommen" und es (noch) "kalikoisiert", aber wir können es in Zukunft tun. Gerade jetzt, wenn Sie das k8s-Erlebnis mit Service-IPs usw. möchten, dann müssen Sie vor Calico einen Kube-Proxy ausführen. – Fasaxc

+0

@Fasaxc warum kann ich ipBlock nicht verwenden, wenn ich calico und kubernetes 1.7 verwende? –