Schulungsübersicht
Tag 1 – Container und Image-Management
Einführung in Container-Plattformen
- Vergleich der herkömmlichen Anwendungsbereitstellung mit containerbasierter Bereitstellung
- Container im Vergleich zu virtuellen Maschinen
- Container-Laufzeiten und Container-Engines
- Die Rollen von Docker, Kubernetes und OpenShift
- Gängige Architekturen von Container-Plattformen
- Entwicklungs-, Test- und Produktionsworkflows
Arbeiten mit Containern
- Ausführen sowie Verwalten von Containern
- Der Lebenszyklus eines Containers
- Starten, Stoppen und Entfernen von Containern
- Befehle innerhalb von Containern ausführen
- Umgebungsvariablen konfigurieren
- Portzuordnung durchführen
- Container-Logs lesen
- Ressourcennutzung und Prozessüberwachung
Erstellung von Container-Images
- Aufbau sowie Schichtenstruktur eines Images
- Dockerfiles bzw. Containerfiles erstellen
- Geeignete Basis-Images auswählen
- Anwendungsabhängigkeiten hinzufügen
- Einstellungen für Startpunkt und Befehle definieren
- Caching von Images nutzen
- Image-Größe verringern
- Nachvollziehbare Images erzeugen
Container-Registries
- Öffentliche und private Registries
- Tagging sowie Versionierung von Images
- Images hochladen und herunterladen
- Authentifizierung bei Registrys
- Löschung und Aufbewahrung alter Images
- Grundlegende Aspekte der Image-Sicherheit
Container-Netzwerke und Speicherplatzverwaltung
- Konzepte der Container-Netzwerke
- Brückenbasierte Netzwerkkonfigurationen
- Portfreigabe regeln
- Kommunikation zwischen Containern ermöglichen
- Bind-Mounts und Volume-Einbindungen konfigurieren
- Daten dauerhaft außerhalb des Containers speichern
- Aspekte der Datensicherung beachten
Praktische Übungen
- Container ausführen und untersuchen
- Ein Anwendungs-Image erstellen
- Ports sowie Umgebungsvariablen konfigurieren
- Das Image in einer Registry veröffentlichen
- Daten persistent außerhalb des Containers speichern
Tag 2 – Kubernetes-Architektur und Arbeitslasten
Grundlagen von Kubernetes
- Zweck der Container-Orchestrierung verstehen
- Kubernetes-Architektur betrachten
- Funktionen des Kontrollplans
- Aufbau von Worker-Knoten erkennen
- API-Server kennenlernen
- Den Scheduler verstehen
- Controller analysieren
- Unterschiede zwischen aktuellem Cluster-Zustand und gewünschtem Zustand erkennen
- Mit kubectl mit dem Cluster kommunizieren
Ressourcen bei Kubernetes
- Pods kennenlernen
- ReplicaSets definieren
- Deployments konfigurieren
- Namensräume nutzen
- Labels und Annotationen hinzufügen
- Selector für Ressourcenzuweisung verwenden
- Deklarative Definitionen von Ressourcen erstellen
- YAML-Manifeste ausfüllen
Anwendungen deployen
- Deployments anlegen und verwalten
- Arbeitslasten skalieren
- Container-Images aktualisieren
- Rolling Updates durchführen
- Rollbacks organisieren
- Deployments-Historie einsehen
- Arbeitslasten neu starten
- Replikate von Anwendungen verwalten
Konfiguration der Anwendung
- ConfigMaps erstellen
- Geheimdaten sicher speichern
- Umgebungsvariablen definieren
- Einstellungsdateien einbinden
- Quellcode und Konfiguration getrennt halten
- Konfiguration je nach Umgebung anpassen
Ressourcenverwaltung
- CPU- und Speicheranforderungen definieren
- Limits für CPU und Speicher vorgeben
- Ressourcenzuweisungsquoten einrichten
- Gültigkeitsbereiche für Limits bestimmen
- Auswirkungen auf Planung der Arbeitslast berücksichtigen
- Fehler bei Ressourcenmangel diagnostizieren
Praktische Übungen
- Eine containerisierte Anwendung deployen
- Kubernetes-Manifeste erstellen und anpassen
- Die Anwendung skalieren
- Einen Rolling Update durchführen und ggf. zurückrollen
- Mit ConfigMaps sowie Secrets die Konfiguration steuern
- Ressourcenanforderungen und Limits festlegen
Tag 3 – Netzwerke, Speicherplatzverwaltung und Sicherheit bei Kubernetes
Netzwerkkonzepte in Kubernetes
- Modell der Cluster-Netzwerke verstehen
- Kommunikation zwischen Pods ermöglichen
- Diensterkennung und -lokalisierung nutzen
- DNS innerhalb des Clusters einsetzen
- ClusterIP-Dienste definieren
- NodePort-Dienste konfigurieren
- LoadBalancer-Dienste erstellen
- Ingress-Konzepte kennenlernen
- Muster zur Anwendungsfreigabe analysieren
Netzwerkrichtlinien
- Datenverkehr zwischen Arbeitslasten regeln
- Eingangs- und Ausgangsregeln definieren
- Datenfluss nach Namensräumen steuern
- Netzwerkverbindungen testen
- Probleme bei der Kommunikation diagnostizieren
Persistenter Speicherplatz
- Vorübergehender vs. dauerhafter Speicher unterscheiden
- Volumes erzeugen
- PersistentVolumes definieren
- PersistentVolumeClaims erstellen
- StorageClasses festlegen
- Dynamische Bereitstellung aktivieren
- Auswahl geeigneter Zugriffsmodi durchführen
- Richtlinien zur Rücknahme von Speicherplatz festlegen
- Speicherbedarf bei stateful-Anwendungen berücksichtigen
Zugriffssteuerung in Kubernetes
- Authentifizierungs- und Autorisierungsmechanismen kennenlernen
- Rollenbasierte Zugriffskontrolle nutzen
- Rolls sowie ClusterRoles definieren
- RoleBindings bzw. ClusterRoleBindings zuweisen
- Service Accounts konfigurieren
- Grundsatz der geringsten Berechtigung umsetzen
- Effektive Rechte prüfen
Sicherheit von Arbeitslasten
- Security Contexts einrichten
- Container ohne Root-Berechtigung ausführen
- Linux-Capabilities zuweisen
- Nur lesbare Dateisysteme nutzen
- Sensible Daten sicher verwalten
- Herkunft der Images überprüfen
- Frequent auftretende Konfigurationsrisiken erkennen
Praktische Übungen
- Eine Anwendung via Kubernetes-Dienste freigeben
- Ingress konfigurieren
- Netzwerkrichtlinien zum Filtern des Verkehrs nutzen
- Dauerhaften Speicherplatz provisionieren
- Rollenbasierte Zugriffsrechte definieren
- Eine Arbeitslast mit passendem Security Context ausführen
Tag 4 – Arbeiten in OpenShift-Umgebungen
Einführung in OpenShift
- OpenShift als Kubernetes-basierte Anwendungsplattform erkennen
- Kubernetes-Ressourcen im OpenShift-Kontext nutzen
- Architektur des OpenShift-Clusters verstehen
- Namensräume und Projekte abgrenzen
- Plattformbenutzer sowie Service Accounts kennenlernen
- Webkonsole bedienen lernen
- OpenShift CLI praktisch anwenden
Verwaltung von Projekten und Zugriffsrechten
- Projekte erstellen und verwalten
- Benutzerrechte zuweisen
- Projektbezogene Rollen nutzen
- Administratorzugriffe steuern
- Ressourcenzuweisungsquoten festlegen
- Gültigkeitsbereiche für Limits konfigurieren
- Service Accounts zuordnen
- Projektressourcen prüfen und analysieren
Anwendungen deployen
- Container-Images bereitstellen
- Anwendungsarbeitlasten konfigurieren
- Deployments anpassen
- Skalierung der Anwendung regeln
- Versionsaktualisierungen vornnehmen
- Rückrollungen organisieren
- Konfiguration der Anwendung pflegen
- Geheimdaten im Projekt speichern
Freigabe von Anwendungen
- Dienste in OpenShift erstellen
- Routes konfigurieren
- TLS-Sicherheit verwenden
- Interner sowie externer Zugriff auf Anwendungen regeln
- Hostnamen und Zertifikate zuweisen
- Probleme bei Routes oder Diensten diagnostizieren
Speicherverwaltung in OpenShift
- Persistent Volume Claims nutzen
- StorageClasses zuweisen
- Speicherplatz an Arbeitslasten binden
- Stateful-Anwendungen unterstützen
- Zugriffsrechte auf Speicher definieren
- Fehler bei Volume-Mounts behoben werden
Scheduling und Knotenverwaltung
- Labels sowie Selektoren verwenden
- Node-Selector anwenden
- Taints und Tolerations definieren
- Affinity- und Anti-Affinity-Konzepte kennenlernen
- Arbeitslastplatzierung steuern
- Knoten sperren sowie entlasten
- Aspekte der Knotenwartung beachten
Praktische Übungen
- Auf eine OpenShift-Umgebung zugreifen
- Projekt erstellen und konfigurieren
- Eine Anwendung deployen sowie öffentlich machen
- Benutzer- sowie Service Account-Zugriffe einrichten
- Dauerhaften Speicherplatz anbinden
- Laufende Arbeitslast skalieren und aktualisieren
Tag 5 – Betrieb, Überwachung und Fehlerbehebung
Plattformüberwachung
- Gesundheitszustand des Clusters sowie der Anwendungen prüfen
- Ressourcenmetriken auswerten
- Zustand einzelner Knoten überwachen
- Beschreibung der aktuellen Arbeitslastzusammensetzung lesen
- Kapazität und Ressourcennutzung bestimmen
- Hinderungen bei der Leistungsfähigkeit identifizieren
Logging und Ereignisse
- Container-Logs auslesen
- Pod-Logs einsehen
- Ebenfalls Logs von früheren Container-Instanzen nutzen
- Kubernetes-Ereignisse nachvollziehen
- Plattform- sowie Anwendungsmeldungen prüfen
- Betriebsdaten filtern und deuten
Gesundheitsüberprüfungen
- Startup-Probes erstellen
- Readiness-Probes konfigurieren
- Liveness-Probes definieren
- Nützliche Health-Endpunkte gestalten
- Probe-Fehler diagnostizieren
- Unnötige Neustarts von Anwendungen verhindern
Troubleshooting von Arbeitslasten
- Pending-Pods erkennen
- Issues beim Image-Download beheben
- Crash-Loop-Probleme auflösen
- Falsche Umgebungsvariablen korrigieren
- Fehler bei der Einbindung von Volumes verhindern
- Mangel an notwendigen Ressourcen nachweisen
- Berechtigungsfehler identifizieren
- Verbindungsprobleme zwischen Diensten oder Routes lösen
- DNS-Probleme beheben
- Gründe für fehlgeschlagene Anwendungsstarts ermitteln
Betriebssicherheit
- Zugriffsrechte überprüfen
- Gebrauch von Service Accounts steuern
- Sensible Daten sicher verwalten
- Empfohlene Praktiken zur Image-Sicherheit anwenden
- Netzwerkisolation gewährleisten
- Zugriffsaktivitäten auf der Plattform überprüfen
- Grundsatz der geringsten Berechtigung durchsetzen
Wartung und Lebenszyklusverwaltung
- Routineüberprüfungen des Systems durchführen
- Knotenwartung organisieren
- Aspekte der Anwendungsbackup-Planung berücksichtigen
- Konfigurationsdatensicherung einleiten
- Updates vorausschauend planen
- Änderungen strukturiert verwalten
- Upgrades gründlich testen
- Rückrollungsplan aufstellen
- Konzepte der Notfallwiederherstellung erarbeiten
Abschließendes Praxisworkshop
Die Teilnehmer bearbeiten ein komplettes operatives Szenario:
- Ein Container-Image erstellen und kennzeichnen.
- Das Image in einer Registry veröffentlichen.
- Anwendung unter Kubernetes oder OpenShift deployen.
- Konfiguration sowie Zugangsdaten der Anwendung festlegen.
- Die Anwendung öffentlich zugänglich machen.
- Dauerhaften Speicherplatz hinzufügen.
- Zugriffsrechte vergeben.
- Gesundheitsüberprüfungen konfigurieren.
- Skalierung sowie Update der Arbeitslast organisieren.
- Ein absichtlich erzeugtes Problem diagnostizieren und beheben.
Kursformat
- Interaktive Vorlesungen sowie technische Diskussionen.
- Demonstrationen durch den Trainer.
- Große Zahl praktischer Übungen.
- Szenariobasierte Workshops zur Verwaltung und Fehlerbehebung.
- Praktische Arbeit in Container-, Kubernetes- sowie OpenShift-Umgebungen.
Individuelle Anpassungsmöglichkeiten des Kurses
- Der Inhalt lässt sich an bestehende Infrastrukturen, Cloud-Anbieter sowie verwendete Container-Tools der Teilnehmer anpassen.
- Verteilung der Themen zu Docker, Kubernetes und OpenShift kann entsprechend dem Erfahrungsstand der Gruppe erfolgen.
- Praktische Übungen können genau auf die Anwendungen, Deploy-Prozesse sowie operativen Bedürfnisse des Unternehmens zugeschnitten werden.
Hinweis zu Markenrechten
OpenShift ist eine Marke von Red Hat, Inc. Dieses unabhängig entwickelte Training steht in keinerlei Zusammenhang mit Red Hat, wird nicht von Red Hat empfohlen und erfolgt ohne Autorisierung durch Red Hat.
Voraussetzungen
Voraussetzungen für die Teilnahme:
- Erfahrung im Umgang mit der Linux-Kommandozeile.
- Grundkenntnisse in Systemadministration oder DevOps-Arbeit.
- Grundsätzliches Verständnis von Netzwerkkonzepten.
- Bekanntheit mit Prozessen zur Softwareverteilung.
Vorherige Erfahrungen mit Docker, Kubernetes oder OpenShift sind hilfreich, aber nicht zwingend erforderlich.
Erfahrungsberichte (7)
Reda hat die Erklärungen geliefert und das Verständnis erheblich vereinfacht.
Eric Van Wyk
Kurs - Docker, Kubernetes and OpenShift 3 for Administrators
Maschinelle Übersetzung
Die Labore waren das Beste. Sie sind sehr praktisch und bieten praktische Erfahrungen. Persönlich denke ich, dass es die effektivste Methode ist, um den Kurs wirklich zu verstehen und die behandelten Konzepte anzuwenden.
Hishaam Johnstone
Kurs - Docker, Kubernetes and OpenShift 3 for Administrators
Maschinelle Übersetzung
Ich schätze die Bereitschaft, weiter zu helfen und zu erklären, wenn Unsicherheiten bestehen
Letlotlo Miffi
Kurs - Docker, Kubernetes and OpenShift 3 for Administrators
Maschinelle Übersetzung
Adriano hat sich sehr tief mit dem Thema beschäftigt, was genau der Stil ist, den ich am meisten bevorzuge: weniger über die Befehle, sondern mehr über das zugrunde liegende Prinzip. Die diskutierten Szenarien wurden durch praktische Beispiele gut untermauert, was sehr half, den vorgestellten Inhalt zu verstehen.
Mariusz BANASZCZYK - Sopra Steria
Kurs - Docker, Kubernetes and OpenShift for Administrators
Maschinelle Übersetzung
Tiefgehende Kenntnisse von Adriano. Erklärung der grundlegenden Konzepte
Tomasz Szalankiewicz - LPP SA
Kurs - Docker, Kubernetes and OpenShift for Administrators
Maschinelle Übersetzung
Ich mochte den Präsentator im Allgemeinen.
Josif Kovacevic - ANZ
Kurs - Docker, Kubernetes and OpenShift for Administrators
Maschinelle Übersetzung
Adrian clearly knows and enjoys this technology.
Tom Edginton - National Oceanography Centre
Kurs - Docker, Kubernetes and OpenShift for Administrators
Maschinelle Übersetzung