- Authors

- Name
- Phillip Pham
- @ddppham
TL;DR
Plattform-Dokumentation gehört ins Git-Repository, nicht ins Wiki. Mit MkDocs Material erstellst du eine durchsuchbare Docs-Site, generierst API-Referenzen automatisch aus CRDs und Helm Charts und hältst Architekturentscheidungen als ADRs nach. Dieser Guide zeigt das Setup und die Automatisierung.
Kubernetes-Dokumentation als Code
Confluence-Seiten, die seit 18 Monaten niemand aktualisiert hat. Google Docs mit dem Titel "K8s Setup FINAL v3 (2)". Runbooks, die auf einem Cluster basieren, den es nicht mehr gibt. Klingt bekannt? Documentation as Code löst das Problem, indem Dokumentation denselben Lifecycle wie Code durchläuft: versioniert, reviewt und automatisch deployt.
Tooling: MkDocs Material
MkDocs mit dem Material-Theme ist der De-facto-Standard für technische Dokumentation. Die Konfiguration ist minimal:
# mkdocs.yml
site_name: Platform Docs
site_description: Interne Kubernetes-Plattform-Dokumentation
theme:
name: material
language: de
palette:
- scheme: default
primary: indigo
features:
- navigation.tabs
- navigation.sections
- search.highlight
- content.code.copy
plugins:
- search:
lang: de
- awesome-pages
- git-revision-date-localized:
type: date
fallback_to_build_date: true
markdown_extensions:
- admonition
- pymdownx.details
- pymdownx.superfences
- pymdownx.tabbed:
alternate_style: true
- attr_list
- pymdownx.emoji
nav:
- Home: index.md
- Architektur:
- Übersicht: architecture/overview.md
- ADRs: architecture/adrs/
- Runbooks:
- Incident Response: runbooks/incident-response.md
- Scaling: runbooks/scaling.md
- API-Referenz: api-reference/
Installieren und lokal starten:
pip install mkdocs-material mkdocs-awesome-pages-plugin \
mkdocs-git-revision-date-localized-plugin
mkdocs serve
# Docs unter http://localhost:8000
Das git-revision-date-Plugin zeigt automatisch an, wann eine Seite zuletzt geändert wurde. Veraltete Docs fallen sofort auf.
Docs-Struktur für Kubernetes-Plattformen
Eine bewährte Verzeichnisstruktur:
docs/
├── index.md # Landing Page
├── architecture/
│ ├── overview.md # Cluster-Topologie, Netzwerk
│ ├── adrs/
│ │ ├── 001-container-runtime.md
│ │ ├── 002-ingress-controller.md
│ │ └── 003-gitops-tool.md
│ └── diagrams/ # Mermaid oder draw.io
├── runbooks/
│ ├── incident-response.md
│ ├── scaling.md
│ ├── certificate-renewal.md
│ └── _template.md # Runbook-Vorlage
├── onboarding/
│ ├── developer-guide.md
│ └── namespace-request.md
├── api-reference/ # Auto-generiert
│ ├── crds.md
│ └── helm-values.md
└── decisions/
└── runbook-template.md
Architecture Decision Records (ADRs)
Warum haben wir Cilium statt Calico gewählt? Warum ArgoCD statt Flux? ADRs dokumentieren diese Entscheidungen mit Kontext:
# ADR-002: Nginx Ingress Controller statt Traefik
## Status
Akzeptiert (2026-01-15)
## Kontext
Die Plattform braucht einen Ingress Controller für HTTP-Routing.
Evaluiert wurden: Nginx Ingress, Traefik, HAProxy, Emissary.
## Entscheidung
Wir verwenden den Nginx Ingress Controller (kubernetes/ingress-nginx).
## Begründung
- Breiteste Community-Unterstützung und Dokumentation
- Team hat Erfahrung mit Nginx-Konfiguration
- Annotations-basierte Konfiguration reicht für unsere Anforderungen
- ModSecurity-WAF-Integration möglich
## Konsequenzen
- Kein nativer TCP/UDP-Support (Workaround: ConfigMap)
- Kein Dashboard wie bei Traefik
- Upgrade-Prozess muss dokumentiert werden (Breaking Changes zwischen Majors)
ADRs werden nummeriert und nie gelöscht — nur der Status ändert sich (Vorgeschlagen, Akzeptiert, Abgelöst durch ADR-XXX).
Automatische Docs aus CRDs und Helm Charts
Manuell gepflegte API-Referenzen sind immer veraltet. Besser: Docs direkt aus dem Code generieren.
CRD-Dokumentation generieren
Das Tool crd-ref-docs erstellt Markdown aus CustomResourceDefinitions:
# crd-ref-docs installieren
go install github.com/elastic/crd-ref-docs@latest
# Docs aus CRDs generieren
crd-ref-docs \
--source-path=./api/v1 \
--config=docs/crd-ref-docs.yaml \
--renderer=markdown \
--output-path=docs/api-reference/crds.md
Helm Values dokumentieren
helm-docs generiert Dokumentation aus values.yaml-Kommentaren:
# values.yaml
# -- Anzahl der Replicas für das Deployment
# @default -- 3
replicaCount: 3
# -- Container-Image Repository
# @default -- nginx
image:
# -- Image-Repository
repository: nginx
# -- Image-Tag (überschreibt appVersion)
tag: "1.27"
# -- Resource Requests und Limits
resources:
requests:
# -- CPU-Request
cpu: 100m
# -- Memory-Request
memory: 128Mi
# helm-docs installieren
go install github.com/norwoodj/helm-docs/cmd/helm-docs@latest
# Dokumentation generieren
helm-docs --chart-search-root=./charts \
--output-file=../../docs/api-reference/helm-values.md
Die generierten Docs fließen automatisch in die MkDocs-Site ein.
Runbook-Template
Jedes Runbook folgt derselben Struktur, damit es im Incident schnell nutzbar ist:
# Runbook: [Titel]
## Symptome
- Alert: `KubePodCrashLooping`
- Betroffene Services: [Liste]
## Diagnose
1. Pod-Status prüfen:
```bash
kubectl get pods -n <namespace> | grep -v Running
- Events anzeigen:
kubectl describe pod <pod-name> -n <namespace>
Behebung
Option A: Restart
kubectl rollout restart deployment/<name> -n <namespace>
Option B: Rollback
kubectl rollout undo deployment/<name> -n <namespace>
Eskalation
- L2: Platform Team (#platform-oncall)
- L3: Cloud Provider Support
Nachbereitung
- Post-Mortem erstellt
- Monitoring angepasst
- Runbook aktualisiert
## CI/CD: Docs automatisch bauen
Die Docs-Site wird bei jedem Merge nach `main` gebaut und deployt:
```yaml
# .github/workflows/docs.yml
name: Platform Docs
on:
push:
branches: [main]
paths: ['docs/**', 'mkdocs.yml', 'charts/**']
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # Für git-revision-date Plugin
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Generate CRD and Helm docs
run: |
go install github.com/norwoodj/helm-docs/cmd/helm-docs@latest
helm-docs --chart-search-root=./charts \
--output-file=../../docs/api-reference/helm-values.md
- name: Build and deploy
run: |
pip install mkdocs-material mkdocs-awesome-pages-plugin \
mkdocs-git-revision-date-localized-plugin
mkdocs build
# Deploy zu GitHub Pages, S3 oder internem Hosting
| Ansatz | Vorteile | Nachteile |
|---|---|---|
| Confluence/Wiki | Bekannte UI, WYSIWYG | Keine Versionierung, veraltet schnell |
| Git + MkDocs | Versioniert, reviewbar, automatisierbar | Initiales Setup nötig |
| Notion/Google Docs | Einfach zu starten | Keine Code-Reviews, kein CI/CD |
FAQ
Wie überzeuge ich mein Team, von Confluence zu Documentation as Code zu wechseln?
Zeige konkret, wie viele Confluence-Seiten veraltet sind. Der stärkste Argument ist die Integration in den Entwicklungs-Workflow: Docs werden im gleichen PR wie der Code geändert und durchlaufen Reviews.
Welches Tool ist besser — MkDocs oder Docusaurus?
MkDocs Material ist schneller einzurichten und hat ein ausgereiftes Plugin-Ökosystem. Docusaurus eignet sich besser, wenn du React-Komponenten in der Doku brauchst oder bereits ein React-Team hast. Für Plattform-Docs ist MkDocs die pragmatischere Wahl.
Wie halte ich Runbooks aktuell?
Verknüpfe Runbooks mit Alerts. Jeder Alert sollte einen Link zum Runbook enthalten. Nach jedem Incident wird das betroffene Runbook als Teil der Nachbereitung aktualisiert. Zusätzlich: quartalsweise Review aller Runbooks als Team-Aufgabe.
Können nicht-technische Stakeholder Documentation as Code nutzen?
Ja. MkDocs rendert Markdown zu einer normalen Website. Stakeholder lesen die gebaute Site im Browser. Für Änderungen können sie Markdown direkt in der GitHub-Web-UI bearbeiten und einen PR erstellen — ohne Git-Kenntnisse.
Wie gehe ich mit sensiblen Informationen in der Dokumentation um?
Secrets und Credentials gehören nie in die Dokumentation. Verweise stattdessen auf den Secret Manager (z.B. Vault, AWS Secrets Manager). Für interne Docs mit eingeschränktem Zugriff eignet sich ein privates Repository mit GitHub Pages hinter einem VPN oder SSO.
Nächster Schritt: Lege ein docs/-Verzeichnis in deinem Plattform-Repository an und starte mit einer MkDocs-Konfiguration und drei ADRs für eure wichtigsten Architekturentscheidungen.
Kubernetes-Expertise gesucht?
Managed Services, Beratung, Training oder Security – wir unterstützen deutsche Unternehmen bei allen Kubernetes-Themen.
Kubernetes-Beratung gesucht?
Wir helfen deutschen Unternehmen bei der Kubernetes-Implementierung, Migration und Optimierung. DSGVO-konform und praxiserprobt.
📖 Verwandte Artikel
Weitere interessante Beiträge zu ähnlichen Themen
GitHub Actions: CI/CD Pipeline für Kubernetes
Eine vollständige CI/CD-Pipeline mit GitHub Actions für Kubernetes aufsetzen. Von Image-Build über Kustomize-Deployment bis zu Approval Gates.
Kubernetes Automotive ASPICE 2026: Container für SDV und Compliance
Entdecken Sie, wie Kubernetes Automotive ASPICE 2026 Standards für die SDV-Entwicklung & Compliance revolutioniert. Effiziente Entwicklung, Tests und sichere Prozesse für OEMs in Deutschland – ein entscheidender Schritt für Kubernetes Compliance Deutschland.
Self-Hosted Kubernetes AI Code Assistant: Ihr eigener Copilot für Datensouveränität
Entdecken Sie, wie Ihr Unternehmen mit einem selbst-gehosteten Kubernetes AI Code Assistant maximale Datensouveränität sicherstellt und Compliance-Anforderungen erfüllt. Profitieren Sie von Kosteneffizienz und maßgeschneiderter Coding AI als leistungsstarke Copilot-Alternative – ideal für deutsche Entwicklungsteams und den Mittelstand.
Kubernetes Medizintechnik MDR 2026 Container-Compliance
Die EU-MDR stellt hohe Anforderungen an Medizintechnik-Software bis 2026. Dieser Artikel beleuchtet, wie Sie Ihre Kubernetes-Umgebung in Deutschland **MDR-konform** gestalten und Ihre **Container-Workflows** im **Healthcare**-Sektor sicher betreiben. Erfahren Sie die entscheidenden Strategien für **Infrastruktur-Qualifizierung**, **Software-Validierung** und umfassende **Kubernetes Compliance** in regulierten Umgebungen.
Die Top Kubernetes Twitter Accounts zum Folgen: X Feeds für DevOps & Platform Engineers
Bleiben Sie mit den Top Kubernetes X (ehemals Twitter) Accounts stets informiert. Erhalten Sie aktuelle News, tiefgehende Einblicke und praktische Tipps direkt von führenden Kubernetes-Experten. Ein Must-Follow für DevOps- und Platform Engineers, um am Puls der Cloud-Native-Entwicklung zu bleiben.