Ausführen von Kubernetes in vCenter

8

Kubernetes hat also ein ziemlich neuartiges Netzwerkmodell, von dem ich glaube, dass es auf einem Defizit mit dem Standard-Docker-Netzwerk basiert. Während ich immer noch darum kämpfe zu verstehen: (1) was die tatsächlichen Mängel wahrnimmt und (2) was Kubernetes 'allgemeine Lösung ist, erreiche ich jetzt einen Punkt, den ich gerne umsetzen würde die Lösung und vielleicht das wird mich ein wenig besser.

Während der Rest der Kubernetes-Dokumentation sehr ausgereift und gut geschrieben ist, sind die Anweisungen zur Konfiguration des Netzwerks spärlich, weitgehend inkohärent und umfassen viele unterschiedliche Artikel, anstatt sich an einem bestimmten Ort zu befinden.

Ich hoffe, dass jemand, der einen Cluster von Kubernetes eingerichtet hat (von Grund auf), mir helfen kann, mich durch die grundlegenden Verfahren zu führen. Ich bin nicht daran interessiert, auf GCE oder AWS zu laufen, und im Moment bin ich nicht daran interessiert, irgendeine Art von Overlay-Netzwerk wie flannel zu verwenden.

Mein Grund Verständnis ist:

  1. Entwirf ein /16 Subnetz für all deine Pods. Dies wird Sie auf einige 65K Pods beschränken, was für die meisten normalen Anwendungen ausreichen sollte. Alle IP-Adressen in diesem Subnetz müssen "öffentlich" sein und dürfen nicht in einem traditionell privaten (klas- sischen) Bereich liegen.
  2. Erstelle irgendwo eine cbr0 -Brücke und vergewissere dich, dass sie beständig ist ( aber auf welcher Maschine? )
  3. Entfernen / deaktivieren Sie die MASQUERADE -Regel, die von Docker installiert wurde.
  4. Einige, wie configure iptables Routen (wieder, wo? ), so dass jeder von Kubernetes gesponnene Pod eine dieser öffentlichen IPs erhält.
  5. Eine andere Konfiguration ist erforderlich, um die Lastverteilung Services und dynamisches DNS zu verwenden.
  6. Bereitstellung von 5 VMs: 1 Master, 4 Minions
  7. Installieren / konfigurieren Sie Docker auf allen 5 VMs
  8. Installieren / konfigurieren Sie kubectl , controller-manager , apiserver und etcd für den Master und führen Sie sie als services / daemons
  9. aus
  10. Installieren / konfigurieren Sie kubelet und kube-proxy für jeden Diener und führen Sie sie als services / daemons
  11. aus

Dies ist das Beste, was ich aus zwei Tagen Recherche sammeln kann, und sie sind wahrscheinlich falsch (oder fehlgeleitet), außer Betrieb und völlig unvollständig.

Ich habe uneingeschränkten Zugriff zum Erstellen von VMs in einem lokalen vCenter-Cluster. Wenn Änderungen an VLAN / Switches / etc. Ich kann die Infrastruktur einbeziehen.

Wie viele VMs sollte ich für Kubernetes einrichten (für einen kleinen bis mittelgroßen Cluster), und warum? Welche genauen Korrekturen muss ich an meinen oben genannten vage Anweisungen vornehmen, um das Netzwerk vollständig zu konfigurieren?

Ich bin gut mit der Installation / Konfiguration aller Binärdateien. Erstickt gerade auf der Netzwerkseite des Setups.

    
smeeb 30.09.2015, 17:20
quelle

2 Antworten

3

Für eine allgemeine Einführung in kubernetes Netzwerk fand ich Ссылка ziemlich hilfreich.

Zu deinen Items (1) und (2): IMHO werden sie in Ссылка . Aus meiner Erfahrung: Was ist das Problem mit dem Docker NAT-Ansatz? Manchmal müssen Sie z. in die Software alle Endpunkte aller Knoten (172.168.10.1:8080, 172.168.10.2:8080, usw.). in kubernetes können Sie einfach die IPs der Pods in jedem anderen Pod konfigurieren, Docker kompliziert es mit NAT-Indirection. Siehe auch Einrichten des Netzwerks für Kubernetes für eine nette Antwort.

>

Kommentare zu Ihren anderen Punkten: 1.

  

Alle IPs in diesem Subnetz müssen "öffentlich" und nicht innerhalb eines traditionell privaten (klassenweisen) Bereichs sein.

Das "interne Netzwerk" von kubernetes verwendet normalerweise private IPs, siehe auch die obigen Folien, die 10.x.x.x als Beispiel verwenden. Ich vermute, Verwirrung kommt von einigen Kubernetes-Texten, die "öffentlich" als "sichtbar außerhalb des Knotens" bezeichnen, aber sie bedeuten nicht "Internet Public IP Address Range".

    
Stefan Vaillant 03.10.2015 15:40
quelle
0

Für alle, die daran interessiert sind, das Gleiche zu tun, hier ist mein derzeitiger Plan.

Ich habe das Skript kube-up.sh gefunden, das ein Produktions-ish installiert Qualität Kubernetes Cluster auf Ihrem AWS-Konto. Im Wesentlichen erzeugt es 1 Kubernetes Master EC2 Instanz und 4 Minion Instanzen.

Auf dem Master installiert es etcd, den API-Server, den Controller-Manager und den Scheduler. Auf den Minions installiert es Kubelet und Kube-Proxy. Es erstellt auch eine automatische Skalierungsgruppe für die Minions (nett) und erstellt eine ganze Reihe von Sicherheits- und Netzwerk-zentrierten Dingen auf AWS für Sie. Wenn Sie das Skript ausführen und der AWS S3-Bucket nicht erstellt werden kann, erstellen Sie manuell einen Bucket mit demselben genauen Namen und führen Sie das Skript erneut aus.

Wenn das Skript fertig ist, haben Sie Kubernetes in Betrieb und bereit für die produktionsnahe Nutzung (ich sage immer "nah" und "production-ish", weil ich zu neu für Kubernetes bin, um zu wissen, was eigentlich ein Realer ist deal productionized cluster). Sie müssen die AWS-CLI mit einem Benutzer installieren und konfigurieren, der über vollständigen Administratorzugriff auf Ihr AWS-Konto verfügt (es wird fortgefahren und erstellt IAM-Rollen usw.).

Mein Spielplan wird sein:

  1. Arbeiten Sie bequem mit Kubernetes auf AWS
  2. Halten Sie das Kubernetes-Team auf Slack fest, damit ich verstehen kann, wie Kubernetes unter der Haube funktioniert
  3. Reverse Engineering des kube-up.sh -Skripts, damit ich Kubernetes auf der lokalen Konsole (vCenter) ausführen kann
  4. Blog über diesen Prozess
  5. Aktualisieren Sie diese Antwort mit einem Link zu besagtem Blog.

Gib mir etwas Zeit und ich werde es durchmachen.

    
smeeb 09.10.2015 17:05
quelle

Tags und Links