500 Kubernetes und Container Übersicht [0.5 PT]

Updated . Posted . Visible to the public.

Kubernetes ist der de-facto Standard zum Orchestrieren von Container Workloads. Sowohl On Premise als auch in der Cloud wird Kubernetes häufig eingesetzt um Container zu betreiben. Die einfachste Variante ist hierbei eine managed Version eines Cloudproviders (z.B. EKS). In den folgenden Kapiteln lernst du mehr über Container und wie man diese mit Kubernetes betreibt.

Die Grundlage für dieses Kapitel ist "The Book of Kubernetes" von Alan Hohn ( ISBN-13: 978-1718502642 oder neuere Auflage Show archive.org snapshot ). Bei makandra gibt es das Buch in der Bibliothek Show archive.org snapshot . Sollte eine neuere Version existieren, sprich bitte mit deinem Mentor. Zu dem Buch existiert auch ein Errata Show archive.org snapshot und es kann sein, dass einzelne Befehle im Buch entsprechend angepasst werden müssen. Das zum Buch gehörige Repository Show archive.org snapshot hat auch Issues, die auf ein Problem im Buch deuten können, und teilweise aktuellere Commits, um neu aufgetretene Probleme zu lösen. Sollte ein Problem mit den Befehlen im Buch auftreten, kann hier oft eine schnelle Lösung gefunden werden.

Vorbereitung

Bitte beachte, dass du für die Beispiele im Git Repository des Buches zunächst die Ansible und die ansible requirements installieren musst:

$ sudo apt install ansible vagrant virtualbox
$ pip3 install kubernetes
$ ansible-galaxy collection install -r $CODE_REPO/examples/setup/collections/requirements.yaml 

Note

Wenn vagrant up mit FAILED! => {"msg": "Could not find imported module support code for ansiblemodule. Looked for either AnsibleTurboModule.py or module.py"} fehlschlägt, fehlt vermutlich die dependency community.kubernetes. Diese muss in requirements.yaml hinzugefügt werden.

In den jeweiligen Kapiteln kannst du dann mit vagrant up die VMs starten. Bitte beachte auch die README.md files im Git Repo zum Buch.
Verbindung zu deinen VMs kannst du mit vagrant ssh aufbauen, wenn du im entsprechenden Verzeichnis bist.
Du kannst deinen Mentor zu den Basics zu Vagrant fragen.

Ziele

  • In eigenen Worten: Was ist die Definition von Cloud und Cloud Native aus dem "Book of Kubernetes"?
  • Erkläre was Microservices sind und warum es in der Cloudwelt nützlich sein kann darauf zu setzen
    • Zeige die offensichtlichen Vorzüge (Skalierbarkeit, Zuverlässigkeit, Teamorganisation) von Microservices auf. Betrachte aber jeden Vorteil kritisch und grenze ab warum diese Vorteile nicht grundsätzlich relevant für jede Applikation sind. Sind das wirklich Vorteile von Microservices oder allgemein vom redundantem Betrieb einer Applikation?
  • Was sind Nachteile von Microservice basierten Applikationen?
  • Warum möchte man Container in verteilten automatisch skalierenden Systemen einsetzen?
  • Mit einer Shell in einem Container sieht es fast so aus, als wäre man auf einem eigenen "Host Betriebssystem". Was sind die Limitierungen von einem Container gegenüber einer separaten VM/physikalischen Maschine?
  • Was sind die Vorteile eines Containers gegenüber einer lang laufenden VM (non-immutable VM)?
  • Was ist ein Kubernetes "Pod"?
  • Was ist ein Kubernetes "Service" und für was brauche ich diesen?

Inhalte

  • Einleitung, Kapitel 1
Claus-Theodor Riegg
Last edit
Simon Hofmann
License
Source code in this card is licensed under the MIT License.
Posted by Claus-Theodor Riegg to DevOps Curriculum (2023-01-07 13:59)