502 Eine Applikation als Container mit CI pipelines deployen [4 PT]
In diesem Kapitel wirst du eine Applikation in ein Containerimage verpacken und dieses via CI/CD bauen. Anschließend baust du die notwendige Infrastruktur für das Deployment mit Terraform und lässt die Terraform Aufgaben auch in CI/CD laufen. Dieses Kapitel ist sehr praxisnah und ähnliche Aufgaben werden dich auch später erwarten.
Ziele
- Du verstehst wie du eine Applikation als Container Image bauen und deployen kannst
- Du hast gelernt wie CI Jobs in Gitlab funktionieren
- Du weißt was
Pipelines
undJobs
sind - Du kannst erklä...
- Du weißt was
503 Kubernetes Basics [0.5 PT]
In diesem Kapitel lernst du die grundsätzlichen Konzepte von Kubernetes kennen. Hier geht es weniger um die API Objekte wie Deployments
, Pods
oder Service
, sondern um die maßgebenden Prinzipien wie Kubernetes funktioniert und wie ein Cluster aufgebaut wird.
Ziele
- Du verstehst die Cross-Cutting Concerns, die Alan Hohn für alle Container Orchestrierungslösungen anführt:
- Dynamic scheduling
- Distributed state
- Multitenancy
- Hardware isolation
- Für was dient die Kubernetes Control Plane und was genau kann man sich d...
504 Kubernetes Ressourcen um Workloads/Applikationen zu deployen [0.5 PT]
Ziele
- Du verstehst, was ein Pod ist und warum es Sinn macht, Container auf diese Weise zu gruppieren.
- Du verstehst auch wann Container nicht innerhalb des gleichen Pods laufen sollten
- Du weißt auf welchen Ebenen die Container im gleichen Pod voneinander isoliert sind (bzw. nicht isoliert sind im vgl. zu anderen Pods)
- Du verstehst was ein
Deployment
ist und wo der Unterschied zu einemDaemonSet
ist.- Was ist ein
ReplicaSet
?
- Was ist ein
- Wie weiß ein
ReplicaSet
oder einDeployment
welchePods
zu ihm gehören? - Was ist ein `C...
505 Kubernetes Networking [1.5 PT]
In dieser Card geht es um Netzwerke in Kubernetes. Schau noch einmal kurz auf Netzwerke zurück und schau dir die Ziele dort an, ob du noch fit in Netzwerkthemen bist. Wichtig ist auch, dass du die Netzwerkthemen bezüglich der Namespaces aus Funktionsweise von Containern verstanden hast.
Du wirst feststellen, dass die Komplexität relativ hoch ist. Das ist der Grund, w...
506 Debugging Kubernetes Pod scheduling [0.25 PT]
In diesem kurzen Kapitel lernst du die Grundlagen wie du Probleme von Workloads auf Kubernetes untersuchst. Dabei wird primär auf Scheduling Probleme von Pods eingegangen. Komplexe Probleme mit Controllern oder API Probleme bleiben außen vor, da dies den Rahmen sprengen würde.
Wenn du ein YAML manifest in kubernetes anwendest, und die Syntax an sich valide ist, wird es erfolgreich in den cluster state aufgenommen. Das bedeutet aber noch nicht, dass die Ressourcen auch wirklich funktionieren. Beispielsweise könnte bei einem Deployment das C...
507 Kubernetes Authorization and RBAC [0.5 PT]
Ziele
- Du verstehst, welche Aufgaben der Kubernetes
API Server
übernimmt. - Du weißt, wie der
API Server
in das Management des Cluster States involviert ist. - Du weißt, auf welchem Port der
API Server
per Default hört und welches Protokoll gesprochen wird. - Du weißt, dass der
API Server
ein self signed Certificate verwendet und wie du diesem auf einem anderen System vertrauen kannst - Du kennst die 3 default Plugins für Authentifizierung am API server
- Du weißt, wie die Authentifizierung und Role Zuweisung mit `Client Certific...
508 Kubernetes Container Runtime [0.25 PT]
Ziele
- Du weißt, welcher Linux Service für das starten/stoppen/löschen von Containern zuständig ist.
- Wie wird die Authentifizierung für Requests zum
kubelet
konfiguriert? - Du weißt, warum Container Runtimes für den
kubelet
leicht austauschbar sind. - Du weißt, warum ein so genannter
pod-infra-container
gestartet wird und warum hier bevorzugt gernepause
verwendet wird. - Du weißt, wie die DNS Konfiguration für den Kubernetes Nameserver in die Container kommt.
-
kubelet
lässt unter anderem auch die Komponenten für die Control...
509 Kubernetes Persistent Storage [0.5 PT]
Ziele
- Du weißt, für was man persistenten Speicherplatz in Kubernetes braucht.
- Was ist eine
StorageClass
? - Für das Einbinden eines
storage providers
muss es mit `Container Storage Interface (CSI) kompatibel sein. Was sind hier die wichtigsten Eigenschaften? - Du weißt, wie du persistenten Storage für ein
StatefulSet
konfigurierst. - Du weißt, was ein Persistent Volume Claim (PVC) ist.
- Was passiert, wenn ein
StatefulSet
mit einem viavolumeClaimTemplates
erstelltenPVC
gelöscht wird? - Bei
StatefulSets
will man unab...
510 Kubernetes Applikations Konfiguration und Secrets [0.5 PT]
Ziele
- Du weißt, was
ConfigMaps
undSecrets
sind. - Warum sollte man
Secrets
undConfigMaps
verwenden? - Was ist GITOPS?
- Wird ein
Pod
automatisch Änderungen an einerConfigMap
, die er verwendet, anwenden? - Du weißt, wie
Secrets
verschlüsselt werden. - Du weißt, wie du Konfigurationsänderungen mit
ConfigMaps
/Secrets
ausrollst und welche Fallstricke es gibt - Für was sind immutable ConfigMaps?
- Was ist
etcd
? - Für was wird
etcd
bei Kubernetes eingesetzt? - Du kannst in eigenen Worten
raft
erklären.
Inhalte
-...
511 EKS Cluster und mehrere Terraform States [4 PT]
Im Kapitel 502 Eine Applikation als Container mit CI pipelines deployen hast du eine Applikation auf AWS deployed. In diesem Kapitel wirst du das Setup auf die Verwendung von Kubernetes umbauen und deinen Terraform Code weiter modularisieren.
Ziele
- Du kannst deinen Terraform Code in mehrere Module und State/Workspaces aufteilen.
- Du kannst ein EKS Cluster aufsetzen.
- Du weißt, wie du dich am EKS Cluster authe...
512 k8s Workload Health and Resources [1 PT]
Ziele
- Du verstehst, warum man Healthchecks u.ä. haben möchte. Du weißt auch, dass solche Checks nicht exklusiv für Kubernetes vorhanden sind.
- Du kennst die 3 Typen von
Probes
, die man für Container anlegen kann- Du weißt, wann du welchen zum Einsatz bringst und wie sich die
Probes
verhalten.
- Du weißt, wann du welchen zum Einsatz bringst und wie sich die
- Du kennst die 3 Einsatzzwecke für
Probes
und weißt, wie sich diese unterscheiden. - Warum braucht man neben Liveness und Startup noch die Readiness
Probes
? - Du kennst
named ports
und kannst dir vorstellen warum das nützlich s...
513 k8s Custom Resources and Operators [0.5 PT]
Ziele
- Du verstehst was eine Custom Resource ist und warum das nützlich sein kann.
- Du weißt, was ein Operator ist und wie dieser funktioniert.
Inhalte
- Kapitel 17 aus "The Book of Kubernetes" von Alan Hohn
- Aggregated ClusterRoles
Aufgaben
- Sprich mit deinem Mentor über Anhang A
- Sprich mit deinem Mentor über die
labels
aus Anhang B.
Anhang A
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
na...
514 Applikations Stabilität und Monitoring [0.5 PT]
In diesem Kapitel lernst du wie man eine Applikation so betreibt, dass diese im Idealfall keine Ausfälle hat. Ein wichtiger Bestandteil ist dabei auch das Monitoring. Im Buch wird hier auf Prometheus eingegangen. In der Welt von Kubernetes ist Prometheus weit verbreitet, deswegen solltest du davon schon einmal gehört haben und grundsätzlich wissen, wie man es verwendet.
Prometheus selbst ist aber auch ein sehr umfangreiches Thema. Achte deswegen darauf dich für den Moment auf ein eher oberflächliches Wissen zu konzentrieren, da du im Folg...
515 Infrastruktur auf AWS Monitoren [2 PT]
Das Standardtool für Monitoring auf AWS ist Cloudwatch. Du hast dir in den AWS Kapiteln Cloudwatch sicherlich schon grundsätzlich angesehen. In diesem Kapitel wirst du es aber konkret kennenlernen. Du wirst Custom Metriken zu Cloudwatch pushen und Alarme erstellen.
Ziele
- Erfülle alle Aufgaben
- Du verstehst was ein Prometheus
Label
ist und warum manrelabel_config
braucht. - Du verstehst den Unterschied zwischen
relabel_configs
undmetric_relabel_configs
.
Inhalte
- [Amazon CloudWatch instance-level metrics for Amazon RDS...