Schulung: Docker und Kubernetes im Überblick

Während Docker das heiße Thema des letzten zwei Jahre ist, kam Kubernetes bisher eher leise daher. Dabei ist das von Google-Ingenieuren initiierte Projekt mindestens genau so ein Kracher und verlängert nicht um sonst sehr schnell seine Partner-Liste.

Kubernetes birgt die Möglichkeit, grundlegend zu definieren, wie wir im Zeitalter der Cloud über Software denken. Es versucht so, große Änderungen gegenüber den Zeiten anzustoßen, als eine Softwarekomponente noch auf einem fest zugeordneten Rechner lief.

Kubernetes schafft in Verbindung mit Docker die Möglichkeit, in Projekten von Anfang an die Themen Skalierbarkeit, Load Balancing und High Availability bei geringem Aufwand mit einzuplanen. Durch seinen deklarativen Stil muß dabei vom Anwender keine Programmlogik verstanden werden, sondern der Soll-Zustand beschrieben werden. Mit dieser Idee wird einerseits die automatische Reaktion auf Hardware-Fehler Teil des Regelverhaltens. Andererseits eröffnet sich ein Universum an Tools, sei es zur Auto-Generierung der kompletten Infrastruktur aus Code oder zum Monitoring des Systemzustands.

Im Seminar wirst Du eine Beispiel-Software-Komponente als Docker Container auf einem Kubernetes-Cluster deployen. Nach manuellem Skalieren und Load Balancing werden wir dann sehen, wie wir diese Aufgaben automatisieren können. Deine Komponente wird dann selbst mit Kubernetes interagieren. Wir werden Möglichkeiten kennenlernen, wie die Komponente ihren Zustand in der Cloud erhalten kann, und verstehen, was das für Auswirkungen auf die Architektur von Software hat, bevor sie sich wirklich cloud native nennen darf.

Im Kubernetes Seminar lernst Du die Grundlagen und wirst selbst eine Komponente als Docker Container auf einem Cluster skalieren und ausfallsicher betreiben.

Einführung in Docker

  • Überblick über die Docker Architektur (Engine, Client, Images, Container)
  • Konstruktion eines Beispiel-Containers
  • Ausrollen eines Images auf mehrere Rechner mit dem Hub ("Docker Registry")
  • Was bringt Container Orchestration, was kommt in der nächsten Docker Version?

Kubernetes Konzepte

  • Gruppierung von Software-Komponenten in Pods
  • Skalieren und Failover mit Replication Controllern
  • Differenzierung der Maschinen mit Labels
  • Load Balancing mit Services
  • Behandlung des eingehenden Cluster-Datenverkehrs, Pods auf den Eingangsmaschinen, Daemon Sets
  • Aufgabenverteilung mit Jobs
  • Infrastructure as Code: Beschreibung des Clusters in Git einchecken
  • Monitoring des Clusterbetriebs mit Heapster und dem Kubernetes Dashboard
  • Sicherheit: Zugriffsberechtigungen, Service Accounts, Risiken
  • Das Container Network Interface am Beispiel von Apache Project Calico: Network as Code
  • Continous Integration: Automatisierung des Cluster-Setup Prozesses

Architektur Muster in der Cloud

  • Wie kann man Service Discovery in der Cloud realisieren? (Sky-DNS)
  • Wie halte ich Zustand im Container?
  • Was gehört in ein Docker Image?
  • Wie werden Geheimnisse verteilt? (Secrets)
  • Was ist Cloud Native Software? (Refactoringschritte einer Beispielanwendung)
  • Wie mache ich ein Update meiner Cloud-basierten Software? (Deployments)

Zustand im Cluster

  • Volumes: Lokale Verzeichnisse, Netzwerkbasierte Dateisysteme (NFS, CephFS)
  • Deklarative Zustandsbeschreibung
  • Migration existierender Software in den Cluster
  • Verwendung von Replication-basierter Software im Cluster (z.B. PostgreSQL oder ActiveMQ/replicatedLevelDB)

Ausblick

  • Vendor Lock-In? Nein, danke.
  • Vergleich zwischen Docker und Rocket
  • Kommende Features in Kubernetes
  • Aktuelle Arbeit im Open Source Bereich

Zielgruppe

Administratoren, Entwickler, Architekten, DevOps

Vorkenntnisse

Grundlegende IT Kenntnisse. Docker und Linux Kenntnisse sind nicht notwendig.

Ziele

  • Du verstehst Container Orchestration.
  • Du weißt, wordurch sich "cloud native" Anwendungen auszeichnen und wie man solche entwirft.
  • Du bist in der Lage, die Docker und Kubernetes in einer CI/CD Pipeline zu verwenden.

Dauer

1 Tag

Kursunterlage

Handouts aller in der Schulung präsentierten Folien.

* Gesamtpreis pro Teilnehmer inkl. Kursmaterial und Tagesverpflegung zzgl. Mehrwertsteuer