Schulungsübersicht
Tag 1 – Container und Bildverwaltung
Einführung in Container-Plattformen
- Vergleich herkömmlicher Anwendungsbereitstellung mit containerbasierter Bereitstellung
- Container und virtuelle Maschinen
- Container-Laufzeiten und Container-Engines
- Die Rolle von Docker, Kubernetes und OpenShift
- Häufige Container-Plattform-Architekturen
- Arbeitsabläufe für Entwicklung, Tests und Produktion
Arbeit mit Containern
- Ausführen und Verwalten von Containern
- Lebenszyklus von Containern
- Container starten, stoppen und entfernen
- Ausführen von Befehlen innerhalb von Containern
- Umgebungsvariablen
- Port-Zuordnung
- Container-Protokolle
- Ressourcennutzung und Prozessinspektion
Erstellen von Container-Bildern
- Bildstruktur und Schichten
- Erstellung von Dockerfiles und Containerfiles
- Auswahl von Basisbildern
- Hinzufügen von Anwendungsabhängigkeiten
- Konfigurieren von Einstiegspunkten und Befehlen
- Bild-Caching
- Verkleinerung der Bildgröße
- Erstellen reproduzierbarer Bilder
Container-Registries
- Öffentliche und private Registries
- Bild-Tags und Versionierung
- Pushen und Pulren von Bildern
- Bild-Authentifizierung
- Aufbewahrung und Bereinigung von Bildern
- Grundlegende Sicherheitsaspekte bei Bildern
Container-Netzwerk und Speicher
- Konzepte des Container-Netzwerks
- Bridge-Netzwerk
- Port-Freigabe
- Kommunikation zwischen Containern
- Bind-Mounts und Volumes
- Persistente Container-Daten
- Aspekte der Datensicherung
Praktische Übungen
- Container ausführen und inspizieren
- Eine Anwendungsbild erstellen
- Ports und Umgebungsvariablen konfigurieren
- Bild in eine Registry veröffentlichen
- Persistente Daten außerhalb eines Containers speichern
Tag 2 – Kubernetes-Architektur und Workloads
Kubernetes-Grundlagen
- Zweck der Container-Orchestrierung
- Kubernetes-Architektur
- Komponenten der Control Plane
- Worker Nodes
- API-Server
- Scheduler
- Controller
- Cluster-Zustand und gewünschter Zustand
- Kommunikation mit dem Cluster über kubectl
Kubernetes-Ressourcen
- Pods
- ReplicaSets
- Deployments
- Namensräume
- Labels und Annotationen
- Selectors
- Deklarative Ressourcendefinitionen
- YAML-Manifests
Bereitstellung von Anwendungen
- Erstellen und Verwalten von Deployments
- Skalieren von Workloads
- Aktualisieren von Container-Bildern
- Rolling Updates
- Rollbacks
- Deployment-Historie
- Neustart von Workloads
- Verwalten von Anwendungs-Replikas
Anwendungskonfiguration
- ConfigMaps
- Secrets
- Umgebungsvariablen
- Konfigurationsdateien
- Trennen von Anwendungscode und Konfiguration
- Verwalten umgebungsspezifischer Einstellungen
Ressourcenmanagement
- CPU- und Speicheranforderungen (Requests)
- CPU- und Speicherbegrenzungen (Limits)
- Ressourcenquoten
- Limit-Ranges
- Auswirkugen auf die Planung (Scheduling)
- Diagnose ressourcenbezogener Ausfälle
Praktische Übungen
- Eine containerisierte Anwendung bereitstellen
- Kubernetes-Manifests erstellen und aktualisieren
- Eine Anwendung skalieren
- Einen Rolling Update und Rollback durchführen
- Anwendung über ConfigMaps und Secrets konfigurieren
- Ressourcen-Anforderungen und -Begrenzungen anwenden
Tag 3 – Kubernetes-Netzwerk, Speicher und Sicherheit
Kubernetes-Netzwerk
- Cluster-Netzwerkmodell
- Pod-zu-Pod-Kommunikation
- Dienstentdeckung (Service Discovery)
- DNS innerhalb des Clusters
- ClusterIP-Dienste
- NodePort-Dienste
- LoadBalancer-Dienste
- Ingress-Konzepte
- Muster zur Anwendungsexposition
Network Policies
- Steuern des Verkehrs zwischen Workloads
- Egress- und Ingress-Regeln
- Verkehrssteuerung basierend auf Namespaces
- Testen der Netzwerk-Konnektivität
- Beheben von Kommunikationsproblemen bei Diensten
Persistenter Speicher
- Ephemere und persistente Speicher
- Volumes
- PersistentVolumes
- PersistentVolumeClaims
- StorageClasses
- Dynamische Bereitstellung (Dynamic Provisioning)
- Zugriffsmodi
- Reclaim-Policies
- Speicher für zustandsbehaftete Anwendungen
Zugriffskontrolle in Kubernetes
- Konzepte der Authentifizierung und Autorisierung
- Role-Based Access Control (RBAC)
- Rollen (Roles) und ClusterRollen
- RoleBindings und ClusterRoleBindings
- Service Accounts
- Zugriff nach dem Prinzip der geringsten Rechte
- Inspektieren effektiver Berechtigungen
Sicherheit von Workloads
- Security Contexts
- Ausführen von Containern als Nicht-Root-Benutzer
- Linux-Fähigkeiten (Capabilities)
- Read-only Dateisysteme
- Handling von Secrets
- Bild-Herkunft (Image Provenance)
- Häufige Konfigurationsrisiken
Praktische Übungen
- Eine Anwendung über Kubernetes-Dienste exponieren
- Ingress konfigurieren
- Verkehr mittels Network Policy einschränken
- Persistenten Speicher bereitstellen
- RBAC-Berechtigungen konfigurieren
- Einen Workload mit einem passenden Security Context ausführen
Tag 4 – Arbeit mit OpenShift-Umgebungen
Einführung in OpenShift
- OpenShift als Kubernetes-basierte Anwendungsplattform
- Kubernetes-Ressourcen in einer OpenShift-Umgebung
- OpenShift-Cluster-Architektur
- Projekte und Namespaces
- Plattform-Benutzer und Service Accounts
- Arbeiten mit der Web-Konsole
- Arbeiten mit der OpenShift CLI
Verwalten von Projekten und Zugriff
- Erstellen und Verwalten von Projekten
- Zuweisen von Benutzerberechtigungen
- Projektspezifische Rollen
- Administrativer Zugang
- Ressourcenquoten
- Limit-Ranges
- Service Accounts
- Überprüfen von Projektressourcen
Bereitstellung von Anwendungen
- Bereitstellen von Container-Bildern
- Erstellen von Anwendungs-Workloads
- Verwalten von Deployments
- Skalieren von Anwendungen
- Aktualisieren von Anwendungsversionen
- Rollbacks
- Verwalten der Anwendungskonfiguration
- Arbeiten mit Secrets
Anwendungsexposition
- Dienste in OpenShift
- Routen (Routes)
- TLS-Konzepte
- Interner und externer Anwendungszugriff
- Hostnamen und Zertifikate
- Beheben von Problemen mit Routen und Diensten
Speicher in OpenShift
- Persistent Volume Claims
- StorageClasses
- Anhängen von Speicher an Workloads
- Zustandsbehaftete Workloads
- Speicherzugriffsberechtigungen
- Beheben von Problemen beim Einhängen von Volumes
Scheduling und Knotenmanagement
- Labels und Selectors
- Node Selectors
- Taints und Tolerations
- Konzepte von Affinität und Anti-Affinität
- Zuweisung von Workloads (Workload Placement)
- Cordoning und Draining von Knoten
- Aspekte der Knoten-Wartung
Praktische Übungen
- Auf eine OpenShift-Umgebung zugreifen
- Ein Projekt erstellen und konfigurieren
- Eine Anwendung bereitstellen und exponieren
- Berechtigungen für Benutzer und Service Accounts konfigurieren
- Persistenten Speicher anhängen
- Laufenden Workload skalieren und aktualisieren
Tag 5 – Betrieb, Überwachung und Fehlerbehebung
Plattform-Überwachung
- Überwachen der Cluster- und Anwendungsgesundheit
- Ressourcenmetriken
- Knotengesundheit
- Status von Workloads
- Kapazität und Ressourcennutzung
- Identifizieren von Leistungsengpässen
Protokolle (Logging) und Ereignisse
- Container-Logs
- Pod-Logs
- Vorherige Container-Logs
- Kubernetes-Ereignisse
- Anwendungs- und Plattformmeldungen
- Filtern und Interpretieren von Betriebsdaten
Gesundheitschecks
- Startup Probes
- Readiness Probes
- Liveness Probes
- Entwerfen nützlicher Health-Endpunkte
- Diagnose von Probe-Ausfällen
- Verhindern unnötiger Anwendungsneustarts
Fehlerbehebung bei Workloads
- Pending Pods
- Fehler beim Abrufen von Bildern (Image Pull Failures)
- Crash Loops
- Fehlkonfigurierte Umgebungsvariablen
- Feinschläge beim Einhören (Failed Mounts)
- Unzureichende Ressourcen
- Berechtigungsfehler
- Probleme mit der Service- und Routen-Konnektivität
- DNS-Probleme
- Anwendungsstartfehler
Betriebssicherheit
- Überprüfen von Berechtigungen
- Nutzung von Service Accounts
- Sicherer Umgang mit Anmeldedaten
- Best-Practices für Bildsicherheit
- Netzwerkisolation
- Auditing des Plattformzugriffs
- Anwenden des Prinzips der geringsten Rechte
Wartung und Lebenszyklusmanagement
- Routine-Plattformchecks
- Knotenwartung
- Aspekte der Anwendungssicherung
- Sicherung der Konfiguration
- Aktualisierungsplanung
- Änderungsmanagement
- Testen von Updates
- Rollback-Planung
- Konzepte zur Disaster Recovery
Praktischer Abschlussworkshop
Die Teilnehmenden absolvieren ein durchgängiges Betriebsszenario:
- Ein Container-Bild erstellen und taggen.
- Bild in eine Registry veröffentlichen.
- Anwendung in Kubernetes oder OpenShift bereitstellen.
- Anwendungseinstellungen und Anmeldedaten konfigurieren.
- Anwendung exponieren.
- Persistenten Speicher anhängen.
- Zugriffsberechtigungen konfigurieren.
- Gesundheitschecks hinzufügen.
- Anwendung skalieren und aktualisieren.
- Einen eingeführten Fehler diagnostizieren und beheben.
Kursformat
- Interaktive Vorträge und technische Diskussionen.
- Demonstrationen durch den Dozenten.
- Umfangreiche praktische Übungen.
- Szenariobasierte Verwaltungs- und Fehlerbehebungsworkshops.
- Praktische Arbeit in Container-, Kubernetes- und OpenShift-Umgebungen.
Möglichkeiten zur Kursanpassung
- Der Kurs kann an die bestehende Infrastruktur, den Cloud-Anbieter und die Container-Tools der Teilnehmenden angepasst werden.
- Das Verhältnis zwischen Docker-, Kubernetes- und OpenShift-Themen kann entsprechend den Vorkenntnissen des Teams angepasst werden.
- Die praktischen Übungen können an die Anwendungen, Bereitstellungsprozesse und Betriebsanforderungen der Organisation angepasst werden.
Hinweis zu Markenrechten
OpenShift ist eine Marke der Red Hat, Inc. Diese unabhängig entwickelte Schulung steht nicht in Verbindung mit, wird nicht von Red Hat gebilligt oder autorisiert.
Voraussetzungen
Die Teilnehmenden sollten folgendermaßen vorliegen:
- Erfahrung in der Nutzung der Linux-Befehlszeile.
- Grundkenntnisse in Systemadministration oder DevOps.
- Allgemeines Verständnis von Netzwerk-Konzepten.
- Bekanntschaft mit Software-Bereitstellungsprozessen.
Vorerfahrungen mit Docker, Kubernetes oder OpenShift sind hilfreich, aber nicht 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