2016-06-21 16 views
1

Ich versuche, Dienste voneinander zu isolieren.Google Container Engine-Subnetze

Angenommen ops-human hat eine Reihe von MySQL speichert bei Google Container Engine und dev-human hat eine Reihe von Knoten-Anwendungen auf demselben Cluster ausgeführt wird. Ich möchte nicht dev-human in der Lage sein, auf beliebige ops-humans mysql-Instanzen in irgendeiner Weise zugreifen.

Einfachste Lösung: Legen Sie beide in separate Subnetze. Wie mache ich so etwas? Ich bin offen für andere Implementierungen.

+0

Wenn Sie sie in verschiedene [Namespaces] (http://kubernetes.io/docs/admin/namespaces/) setzen, ist das Problem gelöst? – caesarxuchao

+0

@caesarxuchao Namespaces schützt vor Benutzerfehlern (oder nur handliche Konfiguration) wie Benennung jeder Datenbank nur "db". Dann wird die lokale "db" in diesem Namespace gefunden. Wenn Sie jedoch einen vollqualifizierten Domänennamen verwenden und ein flaches Netzwerk wie Kubernetes verwendet, können Sie auf eine andere Ressource außerhalb Ihres Namensbereichs zugreifen. Das Beste ist, niemals dev und ops auf demselben Cluster laufen zu lassen: Was ist, wenn dev einen neuen Code erzeugt, der die Ressourcen, die ops benötigt, ausgibt? –

Antwort

1

Das Netzwerkteam von Kubernetes Network-SIG arbeitet seit einiger Zeit an der Problematik der Netzwerkisolation, und es gibt eine experimentelle API in kubernetes 1.2, die dies unterstützt. Die Grundidee besteht darin, Netzwerkrichtlinien auf Namespace-Basis bereitzustellen. Ein Netzwerkcontroller eines Drittanbieters kann dann auf Änderungen an Ressourcen reagieren und die Richtlinie erzwingen. Sehen Sie die letzten blog post zu diesem Thema für die Details.

EDIT: Diese Antwort ist mehr über die Open-Source-Kubernetes, nicht für GKE speziell.