Schulungsübersicht
Tag 1 – Container und Image-Management
Einführung in Container-Plattformen
- Vergleich traditioneller Anwendungs-Bereitstellung mit containerbasierter Bereitstellung
- Container und virtuelle Maschinen
- Container-Runtimes und Container-Engines
- Die Rolle von Docker, Kubernetes und OpenShift
- Häufige Architekturen von Container-Plattformen
- Workflows für Entwicklung, Test und Produktion
Arbeiten mit Containern
- Ausführen und Verwalten von Containern
- Container-Lebenszyklus
- Container starten, stoppen und entfernen
- Ausführen von Befehlen innerhalb von Containern
- Umgebungsvariablen
- Port-Mapping
- Container-Logs
- Ressourcennutzung und Prozessüberprüfung
Erstellen von Container-Images
- Image-Struktur und Layers
- Erstellen von Dockerfiles und Containerfiles
- Auswahl von Basis-Images
- Hinzufügen von Anwendungsabhängigkeiten
- Konfigurieren von Einstiegspunkten und Befehlen
- Image-Caching
- Verkleinern der Image-Grösse
- Erstellen reproduzierbarer Images
Container-Registries
- Öffentliche und private Registries
- Taggen und Versionieren von Images
- Pushen und Pullen von Images
- Image-Authentifizierung
- Image-Aufbewahrung und Bereinigung
- Basis-Sicherheitsüberlegungen für Images
Container-Netzwerkverbindungen und Speicher
- Konzepte des Container-Netzwerks
- Bridge-Netzwerkverbindungen
- Port-Freigabe
- Kommunikation zwischen Containern
- Bind Mounts und Volumes
- Persistente Container-Daten
- Betrachtungen zur Datensicherung
Praktische Übungen
- Container ausführen und überprüfen
- Anwendungs-Image erstellen
- Ports und Umgebungsvariablen konfigurieren
- Image in eine Registry hochladen
- Persistente Daten ausserhalb 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 (Namespaces)
- Labels und Annotations
- Selectors
- Deklarative Ressourcen-Definitionen
- YAML-Manifests
Bereitstellen von Anwendungen
- Erstellen und Verwalten von Deployments
- Skalieren von Workloads
- Aktualisieren von Container-Images
- Rolling Updates
- Rollbacks
- Deployment-Verlauf
- Neustarten von Workloads
- Verwalten von Anwendungs-Replikaten
Anwendungskonfiguration
- ConfigMaps
- Secrets
- Umgebungsvariablen
- Konfigurationsdateien
- Trennen von Anwendungscode und Konfiguration
- Verwalten von umgebungsspezifischen Einstellungen
Ressourcenmanagement
- CPU- und Memory-Anfragen
- CPU- und Memory-Beschränkungen
- Ressourcen-Quotas
- Limit Ranges
- Auswirkung auf die Planung (Scheduling)
- Durchführen einer Diagnose von ressourcenbedingten Fehlern
Praktische Übungen
- Eine containerisierte Anwendung bereitstellen
- Kubernetes-Manifests erstellen und aktualisieren
- Eine Anwendung skalieren
- Einen Rolling Update und einen Rollback durchführen
- Die Anwendung mit ConfigMaps und Secrets konfigurieren
- Ressourcen-Anfragen und -Beschränkungen anwenden
Tag 3 – Kubernetes-Netzwerkverbindungen, Speicher und Sicherheit
Kubernetes-Netzwerkverbindungen
- Cluster-Netzwerkmodell
- Kommunikation zwischen Pods
- Dienstentdeckung (Service Discovery)
- DNS innerhalb des Clusters
- ClusterIP-Dienste
- NodePort-Dienste
- LoadBalancer-Dienste
- Konzepte zu Ingress
- Muster für die Anwendungs-Freigabe
Network Policies
- Steuern des Datenverkehrs zwischen Workloads
- Ingress- und Egress-Richtlinien
- Datensteuerung auf Namespace-Ebene
- Testen der Netzwerkverbindung
- Troubleshooting der Dienstkommunikation
Persistenter Speicher
- Ephemere und persistente Speicherung
- Volumes
- PersistentVolumes
- PersistentVolumeClaims
- StorageClasses
- Dynamische Bereitstellung (Dynamic Provisioning)
- Zugriffsmodi
- Zurückhaltungsrichtlinien (Reclaim Policies)
- Speicher für zustandsbehaftete Anwendungen
Zugriffskontrolle in Kubernetes
- Konzepte zu Authentifizierung und Autorisierung
- Role-Based Access Control (RBAC)
- Rollen und ClusterRollen
- RoleBindings und ClusterRoleBindings
- Dienstkonten (Service Accounts)
- Zugriff nach dem Prinzip der geringsten Rechte (Least Privilege)
- Überprüfen effektiver Berechtigungen
Sicherheit von Workloads
- Sicherheitskontexte (Security Contexts)
- Ausführen von Containern ohne Root-Rechte
- Linux-Fähigkeiten (Capabilities)
- Nur lesbare Dateisysteme
- Umgang mit Secrets
- Herkunft der Images (Image Provenance)
- Häufige Konfigurationsrisiken
Praktische Übungen
- Eine Anwendung über Kubernetes-Dienste verfügbar machen
- Ingress konfigurieren
- Datenverkehr mit einer Network Policy einschränken
- Persistenten Speicher bereitstellen
- RBAC-Berechtigungen konfigurieren
- Einen Workload mit einem angemessenen Sicherheitskontext ausführen
Tag 4 – Arbeiten mit OpenShift-Umgebungen
Einführung in OpenShift
- OpenShift als Kubernetes-basierte Plattform für Anwendungen
- Kubernetes-Ressourcen in einer OpenShift-Umgebung
- OpenShift-Cluster-Architektur
- Projekte und Namespaces
- Plattform-Benutzer und Dienstkonten
- Arbeiten mit der Webkonsole
- Arbeiten mit der OpenShift-CLI
Verwalten von Projekten und Zugriffen
- Erstellen und Verwalten von Projekten
- Zuweisen von Benutzerberechtigungen
- Rollen auf Projektebene
- Administrativer Zugriff
- Ressourcen-Quotas
- Limit Ranges
- Dienstkonten
- Überprüfen von Projekt-Ressourcen
Bereitstellen von Anwendungen
- Bereitstellen von Container-Images
- Erstellen von Anwendungs-Workloads
- Verwalten von Deployments
- Skalieren von Anwendungen
- Aktualisieren von Anwendungsversionen
- Rollbacks
- Verwalten der Anwendungskonfiguration
- Umgang mit Secrets
Anwendungs-Freigabe (Exposure)
- Dienste in OpenShift
- Routes
- Konzepte zu TLS
- Interner und externer Anwendungszugriff
- Hostnamen und Zertifikate
- Troubleshooting von Route- und Dienstproblemen
Speicher in OpenShift
- Persistent Volume Claims (PVCs)
- StorageClasses
- Anhängen von Speicher an Workloads
- Zustandsbehaftete Workloads
- Speicherzugriffsberechtigungen
- Troubleshooting beim Einhängen von Volumes
Scheduling und Knotenverwaltung
- Labels und Selectors
- Node Selectors
- Taints und Tolerations
- Konzepte zu Affinity und Anti-Affinity
- Workload-Platzierung
- Cordoning und Draining von Nodes
- Betrachtungen zur Wartung von Knoten
Praktische Übungen
- Zugriff auf eine OpenShift-Umgebung erhalten
- Ein Projekt erstellen und konfigurieren
- Eine Anwendung bereitstellen und verfügbar machen
- Benutzer- und Dienstkontozugriff konfigurieren
- Persistenten Speicher anhängen
- Einen laufenden Workload skalieren und aktualisieren
Tag 5 – Betrieb, Überwachung und Troubleshooting
Plattform-Überwachung
- Überwachung der Cluster- und Anwendungsgesundheit
- Ressourcenmetriken
- Knotengesundheit (Node Health)
- Status von Workloads
- Kapazität und Ressourcennutzung
- Identifizieren von Leistungseinschränkungen
Protokolle (Logging) und Ereignisse
- Container-Logs
- Pod-Logs
- Vorherige Container-Logs
- Kubernetes-Ereignisse
- Anwendungs- und Plattformnachrichten
- Filtern und Interpretieren von Betriebsdaten
Gesundheitsprüfungen (Health Checks)
- Startup Probes
- Readiness Probes
- Liveness Probes
- Entwerfen nützlicher Health-Endpunkte
- Durchführen einer Diagnose von Probe-Fehlern
- Verhindern unnötiger Anwendungsneustarts
Troubleshooting von Workloads
- Pending Pods (Wartende Pods)
- Fehler beim Abrufen des Images (Image Pull Failures)
- Crash Loops
- Fehlkonfigurierte Umgebungsvariablen
- Fehlschlagendes Einhängen (Failed Mounts)
- Nicht ausreichende Ressourcen
- Berechtigungsfehler
- Probleme mit Dienst- und Routenverbindungen
- DNS-Probleme
- Fehler beim Starten der Anwendung
Betriebsicherheit
- Überprüfen von Berechtigungen
- Nutzung von Dienstkonten
- Sicherer Umgang mit Anmeldedaten
- Bildsicherheitspraktiken
- Netzwerkisolierung
- Überprüfung des Plattformzugriffs (Auditing)
- Anwenden des Prinzips der geringsten Rechte
Wartung und Lebenszyklusverwaltung
- Routinemässige Plattformprüfungen
- Knotenwartung
- Betrachtungen zur Anwendungsdatensicherung
- Sichern der Konfiguration
- Updates-Planung
- Änderungsmanagement
- Testen von Updates
- Rollback-Planung
- Konzepte zur Disaster Recovery
Praktischer Abschlussworkshop
Die Teilnehmenden bearbeiten ein durchgängiges Betriebsszenario:
- Erstellen und Taggen eines Container-Images.
- Hochladen des Images in eine Registry.
- Bereitstellen der Anwendung auf Kubernetes oder OpenShift.
- Konfigurieren von Anwendungseinstellungen und Anmeldedaten.
- Verfügbarmachen der Anwendung.
- Anhängen persistenten Speichers.
- Konfigurieren der Zugriffsberechtigungen.
- Hinzufügen von Gesundheitsprüfungen (Health Checks).
- Skalieren und Aktualisieren der Anwendung.
- Diagnostizieren und Beheben eines eingeführten Fehlers.
Kursformat
- Interaktive Vorträge und technische Diskussionen.
- Demonstrationen durch die Dozentin oder den Dozenten.
- Umfangreiche praktische Übungen.
- Szenariobasierte Administrations- und Troubleshooting-Workshops.
- Praktische Arbeit in Container-, Kubernetes- und OpenShift-Umgebungen.
Möglichkeiten zur Kursanpassung
- Der Kurs kann an die bestehende Infrastruktur, den Cloud-Anbieter und das Container-Tooling der Teilnehmenden angepasst werden.
- Das Verhältnis zwischen Docker-, Kubernetes- und OpenShift-Themen kann entsprechend den Kenntnissen des Teams angepasst werden.
- Die praktischen Übungen können auf die Anwendungen der Organisation, die Bereitstellungsprozesse und die Betriebsanforderungen zugeschnitten werden.
Hinweis zu Markenrechten
OpenShift ist eine eingetragene Marke von Red Hat, Inc. Diese unabhängig entwickelte Schulung steht in keiner Verbindung zu Red Hat und wird nicht von Red Hat gefördert oder autorisiert.
Voraussetzungen
Die Teilnehmenden sollten über folgende Kenntnisse verfügen:
- Erfahrung im Umgang mit der Linux-Befehlszeile.
- Grundkenntnisse in Systemadministration oder DevOps.
- Ein allgemeines Verständnis von Netzwerk Konzepten.
- Bekanntschaft mit Software-Bereitstellungsprozessen.
Vorkenntnisse 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