Schulungsübersicht
Tag 1 – Container und Image-Management
Einführung in Container-Plattformen
- Vergleich der traditionellen Anwendungs-Bereitstellung 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, Test und Produktion
Arbeiten mit Containern
- Ausführen und Verwalten von Containern
- Container-Lebenszyklus
- Starten, Stoppen und Entfernen von Containern
- Ausführen von Befehlen innerhalb von Containern
- Umgebungsvariablen
- Portzuordnung
- Container-Logs
- Ressourcennutzung und Prozessinspektion
Erstellen von Container-Images
- Image-Struktur und Schichten
- Erstellen von Dockerfiles und Containerfiles
- Auswahl von Basis-Images
- Hinzufügen von Anwendungsabhängigkeiten
- Konfigurieren von Einstiegspunkten und Befehlen
- Image-Caching
- Verringern der Image-Größe
- Erstellen reproduzierbarer Images
Container-Registries
- Öffentliche und private Registries
- Taggen und Versionieren von Images
- Hochladen (Push) und Herunterladen (Pull) von Images
- Image-Authentifizierung
- Image-Aufbewahrung und Bereinigung
- Basics der Image-Sicherheit
Container-Netzwerktechnik und Speicher
- Konzepte des Container-Netzwerks
- Bridge-Netzwerktechnik
- Port-Freigabe
- Kommunikation zwischen Containern
- Bind Mounts und Volumes
- Persistente Container-Daten
- Sicherheitsaspekte beim Backup
Praktische Übungen
- Container ausführen und inspizieren
- Eine Anwendungs-Image erstellen
- Ports und Umgebungsvariablen konfigurieren
- Ein Image in eine Registry veröffentlichen
- Persistente Daten außerhalb eines Containers speichern
Tag 2 – Kubernetes-Architektur und Workloads
Kubernetes-Grundlagen
- Der Zweck der Container-Orchestrierung
- Kubernetes-Architektur
- Komponenten der Steuerungsplane (Control Plane)
- Worker Nodes
- API-Server
- Scheduler
- Controller
- Cluster-Zustand und Desired State
- Kommunikation mit dem Cluster über kubectl
Kubernetes-Ressourcen
- Pods
- ReplicaSets
- Deployments
- Namensräume (Namespaces)
- Labels und Annotationen
- Selectors
- Deklarative Ressourcendefinitionen
- YAML-Manifests
Bereitstellen von Anwendungen
- Erstellen und Verwalten von Deployments
- Skalieren von Workloads
- Aktualisieren von Container-Images
- Rolling Updates
- Rollbacks
- Deployment-Verlauf
- Neustart von Workloads
- Verwalten von Anwendungs-Repliken
Anwendungskonfiguration
- ConfigMaps
- Secrets
- Umgebungsvariablen
- Konfigurationsdateien
- Trennung von Anwendungscode und Konfiguration
- Verwalten umgebungsspezifischer Einstellungen
Ressourcenmanagement
- CPU- und Memory-Anforderungen (Requests)
- CPU- und Memory-Limits
- Ressourcenkontingente (Quotas)
- Limit Ranges
- Auswirkungen auf die Planung (Scheduling)
- 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 über ConfigMaps und Secrets konfigurieren
- Ressourcen-Anforderungen und -Limits anwenden
Tag 3 – Kubernetes-Netzwerktechnik, Speicher und Sicherheit
Kubernetes-Netzwerktechnik
- Cluster-Netzwerkmodell
- Kommunikation zwischen Pods
- Dienstentdeckung (Service Discovery)
- DNS innerhalb des Clusters
- ClusterIP-Dienste
- NodePort-Dienste
- LoadBalancer-Dienste
- Ingress-Konzepte
- Muster zur Exponierung von Anwendungen
Netzwerkrichtlinien (Network Policies)
- Steuerung des Datenverkehrs zwischen Workloads
- Ingress- und Egress-Regeln
- Datenverkehrskontrolle auf Namenspurnebene
- Testen der Netzwerkverbindung
- Fehlersuche bei der Dienstkommunikation
Persistenter Speicher
- Ephemere und persistente Speicherung
- Volumes
- PersistentVolumes
- PersistentVolumeClaims
- StorageClasses
- Dynamische Bereitstellung
- Zugriffsmodi
- Zurückhaltestrategien (Reclaim Policies)
- Speicher für zustandsbehaftete Anwendungen
Zugriffskontrolle in Kubernetes
- Konzepte der Authentifizierung und Autorisierung
- Role-Based Access Control (RBAC)
- Rollen und ClusterRoles
- RoleBindings und ClusterRoleBindings
- Service-Accounts
- Zugriff nach dem Prinzip des geringsten Privilegs
- Überprüfen der effektiven Berechtigungen
Sicherheit von Workloads
- Sicherheitskontexte (Security Contexts)
- Ausführen von Containern als Nicht-Root-Benutzer
- Linux-Fähigkeiten (Capabilities)
- Lese-only-Dateisysteme
- Umgang mit Secrets
- Herkunft der Images
- Häufige Konfigurationsrisiken
Praktische Übungen
- Eine Anwendung über Kubernetes-Dienste exponieren
- 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 Anwendungsplattform
- Kubernetes-Ressourcen in einer OpenShift-Umgebung
- OpenShift-Cluster-Architektur
- Projekte und Namenspurn
- Plattformbenutzer und Service-Accounts
- Arbeiten mit der Webkonsole
- Arbeiten mit der OpenShift-Befehlszeilenschnittstelle (CLI)
Verwalten von Projekten und Zugriff
- Erstellen und Verwalten von Projekten
- Zuweisen von Benutzerberechtigungen
- Rollen auf Projektebene
- Administrativer Zugriff
- Ressourcenkontingente (Quotas)
- Limit Ranges
- Service-Accounts
- Überprüfen von Projektressourcen
Bereitstellen von Anwendungen
- Bereitstellen von Container-Images
- Erstellen von Anwendungsworkloads
- Verwalten von Deployments
- Skalieren von Anwendungen
- Aktualisieren von Anwendungsversionen
- Rollbacks
- Verwalten der Anwendungskonfiguration
- Arbeiten mit Secrets
Exponierung von Anwendungen
- Dienste in OpenShift
- Routes
- TLS-Konzepte
- Interner und externer Anwendungszugriff
- Hostnamen und Zertifikate
- Fehlersuche bei Route- und Dienstproblemen
Speicher in OpenShift
- Persistent Volume Claims
- StorageClasses
- Anhängen von Speicher an Workloads
- Zustandsbehaftete Workloads
- Speicherzugriffsberechtigungen
- Fehlersuche beim Mounten von Volumes
Scheduling und Knotenverwaltung
- Labels und Selectors
- Node Selectors
- Taints und Tolerations
- Konzepte von Affinität und Anti-Affinität
- Workload-Platzierung
- Cordoning und Draining von Nodes
- Betrachtungen zur Knotenwartung
Praktische Übungen
- Auf eine OpenShift-Umgebung zugreifen
- Ein Projekt erstellen und konfigurieren
- Eine Anwendung bereitstellen und exponieren
- Zugriff für Benutzer und Service-Accounts konfigurieren
- Persistenten Speicher anhängen
- Einen laufenden Workload skalieren und aktualisieren
Tag 5 – Betrieb, Monitoring und Fehlersuche
Plattform-Monitoring
- Überwachen der Cluster- und Anwendungsgesundheit
- Ressourcenmetriken
- Knotengesundheit
- Workload-Status
- Kapazität und Ressourcennutzung
- Identifizieren von Leistungsbeschränkungen
Logging und Ereignisse
- Container-Logs
- Pod-Logs
- Vorherige Container-Logs
- Kubernetes-Ereignisse
- Anwendungs- und Plattformmeldungen
- Filtern und Interpretieren operativer Daten
Gesundheitsprüfungen (Health Checks)
- Startup Probes
- Readiness Probes
- Liveness Probes
- Entwerfen nützlicher Health-Endpunkte
- Diagnose von Probe-Fehlern
- Vorbeugen unnötiger Anwendungsneustarts
Fehlersuche bei Workloads
- Stehende Pods (Pending)
- Fehler beim Abrufen von Images
- Crash Loops
- Falsch konfigurierte Umgebungsvariablen
- Fehlgeschlagene Mounts
- Nicht genügend Ressourcen
- Berechtigungsfehler
- Probleme mit der Service- und Routenverbindung
- DNS-Probleme
- Fehler beim Starten der Anwendung
Operationale Sicherheit
- Überprüfen von Berechtigungen
- Nutzung von Service-Accounts
- Sicherer Umgang mit Anmeldedaten
- Image-Sicherheitspraktiken
- Netzwerkisolierung
- Auditieren des Plattformzugriffs
- Anwenden des Prinzips des geringsten Privilegs
Wartung und Lebenszyklusmanagement
- Routine-Prüfungen der Plattform
- Knotenwartung
- Betrachtungen zur Anwendungsbackup
- Sichern der Konfiguration
- Planung von Updates
- Änderungsmanagement
- Testen von Updates
- Planung von Rollbacks
- Konzepte der Disaster Recovery
Praktischer Abschlussworkshop
Die Teilnehmer absolvieren ein durchgängiges operationales Szenario:
- Ein Container-Image erstellen und taggen.
- Das Image in eine Registry veröffentlichen.
- Die Anwendung in Kubernetes oder OpenShift bereitstellen.
- Anwendungseinstellungen und Anmeldedaten konfigurieren.
- Die Anwendung exponieren.
- Persistenten Speicher anhängen.
- Zugriffsberechtigungen konfigurieren.
- Gesundheitsprüfungen hinzufügen.
- Die Anwendung skalieren und aktualisieren.
- Einen eingeführten Fehler diagnostizieren und beheben.
Kursformat
- Interaktive Vorlesungen und technische Diskussionen.
- Demonstrationen durch den Dozenten.
- Umfangreiche praktische Übungen.
- Szenariobasierte Administrations- und Fehlersuchworkshops.
- 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-Tooling der Teilnehmer angepasst werden.
- Das Verhältnis der Themen Docker, Kubernetes und OpenShift kann entsprechend der Erfahrung des Teams angepasst werden.
- Die praktischen Übungen können an die Anwendungen, Bereitstellungsprozesse und operationellen Anforderungen der Organisation angepasst werden.
Hinweis zu Markenrechten
OpenShift ist eine eingetragene Marke der Red Hat, Inc. Diese unabhängig entwickelte Schulung steht nicht in Verbindung mit, wird weder von noch ist sie von Red Hat unterstützt oder autorisiert.
Voraussetzungen
Für eine aktive Teilnahme sind folgende Voraussetzungen erforderlich:
- Erfahrung in der Nutzung der Linux-Kommandozeile.
- Grundsätzliche Kenntnisse im Bereich Systemadministration oder DevOps.
- Grundlegendes Verständnis von Netzwerkprinzipien.
- Bekanntheit mit Standardverfahren der Softwarebereitstellung.
Vorkenntnisse in Docker, Kubernetes oder OpenShift sind zwar nützlich, aber keine zwingende Voraussetzung.
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