Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Cover
Über den Autor
Titel
Impressum
Vorwort
Inhaltsverzeichnis
Teil I Grundlagen
1 Was ist GitOps?
1.1 CIOps vs. GitOps
1.2 Der Weg zu GitOps
1.2.1 Traditionelle Silos
1.2.2 DevOps
1.2.3 Infrastructure as Code
1.2.4 Kubernetes
1.2.5 OpenGitOps
1.3 Die vier Prinzipien
1.3.1 Prinzip 1: Deklarativ
1.3.2 Prinzip 2: Versioniert und unveränderlich
1.3.3 Prinzip 3: Automatisch bezogen
1.3.4 Prinzip 4: Kontinuierlich angeglichen
1.4 Fragen und Missverständnisse
2 Welchen Unterschied macht GitOps?
2.1 Indizien aus den DORA-Studien
2.2 Der Unterschied im Alltag: Geschichten eines Entwicklungsteams
2.3 Szenario
2.3.1 Repositories
2.3.2 Deployment-Fluss
2.3.3 Vergleichsszenario »Mit GitOps«
2.4 Kontinuierlich nach Dev deployen
2.5 Ressourcen aufräumen
2.6 Grenzfälle in CI vermeiden
2.7 Ressourcen wiederherstellen
2.8 Konfigurationsänderungen ausrollen
2.9 Incidents navigieren
2.10 Zielsysteme besser absichern
3 Wie fange ich mit GitOps an?
3.1 Agile Empfehlung: zügiger Durchstich
3.2 Fragen zur Orientierung
3.3 Eine Beispielimplementierung mit Argo CD
3.3.1 Zielsetzung
3.3.2 Voraussetzungen
3.4 Schritt 1: Einen Cluster starten
3.5 Schritt 2: Argo CD installieren
3.5.1 Ressourcentypen von Argo CD verstehen
3.6 Schritt 3: Eine eigene Application erzeugen
3.7 Schritt 4: Eine Änderung deployen
3.8 Fazit
Teil II Praxis
4 Argo CD oder Flux auswählen
4.1 Zahlen und Fakten
4.2 Bootstrapping
4.3 Linking
4.4 CLI und GUI
4.5 Komponenten und Ressourcenbedarf
4.6 Authentifizierung und Autorisierung
4.7 Templating
4.8 Configuration Management
4.9 Monitoring und Alerting
4.10 Ökosystem
4.11 Mandantentrennung
4.12 Multi-Cluster-Management
4.13 OCI statt Git
4.14 Hochverfügbarkeit und Lastverteilung
4.15 Reifegrad
4.16 Kommerzielle Angebote
4.17 Fazit und Tipps zur Entscheidungsfindung
5 Secrets sicher verwalten
5.1 Secrets lagern und verwalten
5.1.1 Secrets verschlüsselt im Repo speichern
5.1.2 Secrets extern verwalten
5.2 Secrets konsumieren
5.2.1 Secrets als native Kubernetes-Secrets konsumieren
5.2.2 Secrets über Sidecar-Container injizieren
5.2.3 Secrets über ein CSI-Volume konsumieren
5.3 Wir erweitern die Beispielimplementierung
5.3.1 Ziele
5.3.2 Datenfluss von HashiCorp Vault über ESO in den Cluster
5.3.3 Schritt 1: Das Config-Repo bootstrappen
5.3.4 Schritt 2: Anwendungen in neuen Namespace deployen
5.3.5 Schritt 3: ESO mit HashiCorp Vault verbinden
5.3.6 Schritt 4: Beispiel-Secret erstellen
5.3.7 Schritt 5: Das Secret integrieren
5.3.8 Schritt 6: Das Secret ändern
5.4 Fazit
6 Repositories und Ordner strukturieren
6.1 Design des GitOps-Prozesses
6.2 Kategorien von GitOps-Patterns
6.3 Operator Deployment Patterns
6.3.1 Instance per Cluster
6.3.2 Hub and Spoke
6.3.3 Instance per Namespace
6.4 Repository Patterns
6.4.1 Monorepo
6.4.2 Repo per Team
6.4.3 Repo per Application
6.4.4 Repo per Environment
6.5 Promotion Patterns
6.5.1 Branch oder Folder per Environment
6.5.2 Preview Environments
6.5.3 Global Environments oder Environment per Application
6.5.4 Configuration Management
6.5.5 Config Update
6.6 Verdrahtungs-Patterns
6.6.1 Bootstrapping
6.6.2 Linking
6.7 Beispiele für Config-Repos
6.7.1 Beispiel 1: Argo CD Autopilot
6.7.2 Beispiel 2: GitOps Playground
6.7.3 Beispiel 3: Flux Monorepo
6.7.4 Beispiel 4: Flux Repo per Team
6.7.5 Beispiel 5: The Path to GitOps
6.7.6 Beispiel 6: Environment-Varianten
6.8 Mandantentrennung
6.8.1 Rolle der GitOps-Operatoren
6.8.2 Rolle der Repo-Struktur
6.8.3 Rolle der Cluster
6.8.4 Teams und Environments trennen
6.9 Fazit
7 Asynchron deployen
7.1 Deployment-Flüsse
7.1.1 Schritte
7.1.2 Kombinationen von Zuständigkeiten
7.1.3 Deployment-Fluss 1: CIOps
7.1.4 Deployment-Fluss 2: Schmal-GitOps
7.1.5 Deployment-Fluss 3: CI-Klammer
7.1.6 Deployment-Fluss 4: Übergabe
7.1.7 Deployment-Fluss 5: GitOps-geführt
7.2 Rollout durch den GitOps-Operator
7.2.1 Rollout-Schritte im GitOps-Operator
7.2.2 Timing und Koordination der Rollout-Schritte
7.2.3 Intervalle der Rollout-Schritte
7.2.4 Rollout im GitOps-Operator aktiv triggern
7.3 Config Update
7.3.1 Argo CD Image Updater
7.3.2 Flux Image Automation
7.3.3 Dependency-Bot
7.4 Prüfen
7.4.1 Prüfen via CI-Server
7.4.2 Prüfen via GitOps-Operator
7.4.3 Progressive Delivery
7.5 CI-Server mit GitOps verwalten
7.6 Fazit
8 Alerting integrieren
8.1 Gesundheitszustand feststellen
8.1.1 Kubernetes-nativ mit kstatus
8.1.2 Helm-Hooks
8.1.3 Flux
8.1.4 Argo CD
8.2 Benachrichtigungen verschicken
8.2.1 Flux
8.2.2 Argo CD
8.3 Ganzheitliche Herangehensweise
9 Imperativ eingreifen
9.1 Eindeutig ausgeschlossene Aktionen
9.2 Risiken und Chancen
9.3 Einen Debug-Pod starten
9.4 Ein Backup wiederherstellen
9.5 Ein Deployment neu starten
9.6 Ressourcen neu erzeugen
9.7 Ein Deployment skalieren
9.8 Fazit
Teil III Weiterführendes
10 Mehrere Cluster verwalten
10.1 Single-Cluster vs. Multi-Cluster
10.2 Cluster API
10.3 Konzept von Cluster API
10.4 Definition der Cluster API-Ressourcen
10.5 Installation des Management-Clusters
10.5.1 Provider konfigurieren und temporären Management-Cluster bauen
10.5.2 Worker Cluster anlegen
10.5.3 Installation des Cluster API Operators
10.5.4 Deklarative Installation des Management-Clusters
10.6 Verwaltung von Workload-Clustern mit Argo CD
10.7 Fazit
11 Infrastruktur verwalten
11.1 Terraform
11.1.1 Ein kurzes Tutorial zum Einstieg
11.1.2 Grundbausteine von Terraform
11.1.3 Terraform vs. OpenTofu
11.1.4 Terraform und GitOps
11.1.5 Eine EC2-Instanz verwalten mit TF-Controller und Flamingo
11.2 Pulumi
11.2.1 Grundbausteine von Pulumi
11.2.2 Eine EC2-Instanz verwalten mit Pulumi Kubernetes Operator
11.3 Crossplane
11.3.1 Grundbausteine von Crossplane
11.3.2 Eine EC2-Instanz verwalten mit Crossplane
12 GitOps außerhalb von Kubernetes
12.1 Aus den GitOps-Prinzipien folgende Verantwortlichkeiten
12.2 Infrastructure-as-Code-Formate
12.3 Weitere GitOps-Operatoren
12.4 Features von GitOps-Operatoren
12.5 Einen eigenen GitOps-Operator bauen
12.6 Eigene GitOps-Operatoren aus der Praxis
12.6.1 Docker Swarm und Ansible
12.6.2 Helmfile
12.6.3 Lektionen
Teil IV Anhang
Nachwort
Fußnoten
Index
← Prev
Back
Next →
← Prev
Back
Next →