Beantworten Sie in eigenen Worten die Fragen zu den in der Lehrveranstaltung behandelten Kubernetes-Themen.
Konkret sind dies aus dem Fragenkatalog die Fragen zu den Kapiteln 3, 4, 5, 6, 8, 9.
Der Fragenkatalog bezieht sich auf Lukša Marko: Kubernetes in Action, Hanser, 2018.
Wer holt bei Kubernetes bei Bedarf ein Image aus der Registry? Mögliche Antworten: (a) Kubectl, (b) Kubelet, (c) Docker, (d) Kube-Proxy, (e) Masterknoten.
Skizzieren Sie die Architektur eines Kubernetes-Clusters in einer präzisen Skizze (die die wichtigsten Komponenten enthält) und erläutern Sie die Aufgaben der einzelnen Komponenten.
Was ist ein Pod? Was ist der Unterschied zwischen einem Container und einem Pod? In welcher Beziehung stehen Container und Pod? Was ist die Begründung für einen Pod? Warum hat man das Konzept Pod überhaupt eingeführt?
Warum ist es weniger sinnvoll, mehrere Prozesse in einem Container auszuführen? Erläutern Sie diese Fragestellung.
Durch was sind die Container eines Pods untereinander verbunden? Was ist das verbindende Element?
Haben alle Container in einem Pod die gleichen Interfaces? Begründen Sie Ihre Antwort.
Haben alle Container in einem Pod die gleiche Loopback-Adresse? Begründen Sie Ihre Antwort.
Nutzen alle Container in einem Pod die gleichen Ports? Begründen Sie Ihre Antwort.
Haben alle Container in einem Pod das gleiche Dateisystem? Begründen Sie Ihre Antwort.
Wie kommunizieren Pods in einem Cluster untereinander? Was ändert sich an der Kommunikation, wenn das Cluster über mehrere Hosts verteilt ist?
Eine Anwendung bestehe aus einem Front-End-Anwendungsserver und einer Backend-Datenbank. Diskutieren Sie die Aufteilung der Anwendung in Container und Pods. Achten Sie auf eine strukturierte Darstellung (Art der Darstellung geht in die Bewertung ein).
Geben Sie ein typisches Anwendungsszenario für einen Pod an, der mehr als einen Container enthält.
In welche drei Hauptbestandteile ist ein YAML-Podspezifikation strukturiert? Erläutern Sie diese kurz in ein, zwei Sätzen.
Wie kann man auf ein Webinterface eines laufenden Pods zu Testzwecken einfach von außen zugreifen?
Was ist in Kubernetes ein Label? Wie ist ein Label definiert? Für was wird ein Label verwendet?
Kann einem Pod mehr als ein Label zugewiesen werden? Wenn ja ist das sinnvoll?
Was ist ein Canary-Release? Wie und warum wird es eingesetzt?
Ein Labelselektor kann mehrere Bedingungen enthalten. Mit welchem logischen Operator werden diese Bedingungen bei der Selektion verknüpft?
Wie gehen sie vor, wenn Sie sicherstellen möchten, dass ein Pod nur auf bestimmten Knoten ausgeführt wird?
Was sollte bei der Zuordnung von Pods zu Knoten beachtet werden. Welche Art von Zuordnungen sind hier sinnvoll, welche weniger bzw. nicht sinnvoll. Erläutern Sie Ihre Ausführungen.
Was ist der Unterschied zwischen Labels und Annotations?
Können Pods mit Annotations gruppiert werden?
Wenn ein Container in einem Pod ausfällt, wer genau sorgt dafür, dass dieser Pod wieder gestartet wird?
Wenn von mehreren Containern in einem Pod nur einer abstürzt, wird dieser wieder gestartet?
Was ist In Kubernetes eine Aktivitätssonde ("Liveness Probe")? Wie unterscheidet sie sich von der Bereitschaftssonde (Readiness Probe")?
Nennen Sie drei Mechanismen, mit denen Kubernetes (genauer: das verantwortliche Kubelet) die Bereitschaft eines Containers untersuchen kann.
Warum ist bei Aktivitätssonden der Parameter initialDelaySeconds
wichtig? Wie sollte er konkret gesetzt werden?
Welche Punkte sollten Sie beachten, um bei Kubernetes wirkungsvolle Aktivitätssonden zu erstellen?
Aus welchen drei Hauptbestandteilen besteht ein Replikationscontroller? Erläutern Sie anhand dieser Hauptbestandteile die Funktionsweise eines Replikationscontrollers.
Kann es vorkommen, dass in einem System mehr als die gewünschte Anzahl von Pods läuft? Erläutern Sie Ihre Antwort.
Welche Auswirkung hat bei einem Replikationcontroller die Änderung des Pod-Templates auf bereits bestehende Pots?
Wie erkennt eine Replikationscontroller, dass ein Container gelöscht wurde? Wie reagiert er im Detail auf einen Löschbefehl?
Ein Pod wird von einem Replikationscontroller verwaltet. Welche Auswirkung hat die Änderung eines Pod-Labels? Unterscheiden Sie verschiedene Fälle.
Wie reagiert Kubernetes auf den Ausfall eines ganzen Knotens?
Woher weiß ein Replikationcontroller, um welche Pods er sich kümmern muss?
Was passiert, wenn Sie den Labelselektor eines Replikationcontrollers ändern?
Welche Möglichkeiten haben Sie, die Anzahl der Replikationen eines Pods zu ändern?
Erläutern Sie, inwiefern die Skalierung von Pods deklarativ erfolgt.
Erläutern Sie den Unterschied zwischen einem Replikationcontroller
(ReplicationController
) und einem Replakationssatz
(ReplicaSet
).
Was ist die Aufgabe eines Daemonsets?
Erläutern Sie den Unterschied zwischen einem Replikationssatz
(ReplicaSet
) und einem Daemonset (DaemonSet
).
Geben Sie ein typisches und realistisches Beispiel für die Verwendung eines Daemonsets.
Was passiert beim Hinzukommen eines neuen Knotens im Fall eines Daemonsets?
Was passiert bei einem Knotenausfall mit denjenigen Pods, die von Jobs auf diesem Knoten verwaltet werden?
Können Jobs so eingerichtet werden, dass sie mehrere Pod-Instanzen parallel ausführen? Wenn ja, geben Sie hierfür eine sonnvolles Beispiel an. Wenn nein, begründen Sie, warum dies nicht sinnvoll ist.
Können Jobs so eingerichtet werden, dass sie mehrere Pod-Instanzen hintereinander ausführen? Wenn ja, geben Sie hierfür eine sonnvolles Beispiel an. Wenn nein, begründen Sie, warum dies nicht sinnvoll ist.
Wie lange soll ein Job auf den Abschluss eines einzelnen Jobs warten? Diskutieren Sie kurz diese Fragestellung.
Mit welcher Methode lassen sich bei Kubernetes sich regelmäßig wiederholende Aufgaben realisieren. Welche Anforderung ist an die sich regelmäßig wiederholende Aufgabe zu stellen, damit etwaige Probleme vermieden werden.
Was bewirkt --cascade=false
, wenn man einen
Replikationcontroller löscht?
Auf Dienste in traditionellen vernetzten Systemen wird üblicherweise über eine Hostnamen oder über eine IP-Adresse zugegriffen. Erläutern Sie Gründe, warum dies bei Kubernetes für den Zugriff auf Pods so nicht funktioniert. (Saubere Gliederung: Grund_1, Grund_2, ...)
Erläutern Sie das Konzept der Dienste in Kubernetes. Was sind die Vorteile von Diensten? Warum sind Pods nicht ausreichend?
Was ist der konzeptionelle Unterschied zwischen einem Pod und einem Kubernetes-Dienst?
Mit welcher Methode wird festgelegt, welcher Pod zu einem Dienst gehört und welcher nicht?
Nennen Sie verschiedene Methoden, um die Funktion eines Dienstes in einem Cluster zu testen. (Saubere Gliederung: Methode_1, Methode_2, ...)
Was versteht man unter einer Sitzungsaffinität? Was genau bewirkt eine Sitzungsaffinität? Was sind typische Anwendungsfälle?
Warum ist es sinnvoll bei Pods und Diensten die Ports zu benennen?
Geben Sie zwei grundsätzliche Verfahren an, wie Pods die IP-Adresse und die Ports eines Dienstes finden können.
Beschreiben Sie an einem Beispiel, wie das Finden von Diensten mit Hilfe von Umgebungsvariablen funktioniert. Erläutern Sie die Vorteile hiervon aus Sicht der Anwendungsprogrammierung? Wie würde das Auffinden von Diensten ohne Umgebungsveriablen ablaufen?
Kann der Kubernetes-DNS-Server auch Adressen außerhalb des Clusters auflösen?
Wie sind die DNS-Namen von Diensten in einem Kubernetes-Cluster strukturiert? In welcher Form können DNS-Namen verwendet werden?
Was ist ein grundsätzlicher Vorteil für die Verwendung von DNS-Namen im Vergleich zu IP-Adressen?
Lassen sich in Kubernetes Dienste, die erreichbar sind, über die IP-Adresse anpingen?
Lassen sich in Kubernetes Dienste, die erreichbar sind, über den DNS-Namen des Dienstes anpingen?
Wie ist in Kubernetes die Verbindung eines Dienstes zu seinen Endpunkten konzeptionell gelöst?
Wie werden Dienst-Endpunkt-Objekte verwaltet und gemanaged?
Wie können externe Dienste in ein Kubernetes-Cluster integriert werden?
Welche grundsätzlichen Möglichkeiten gibt es bei Kubernetes einen Dienst für externe Clients verfügbar zu machen?
Was versteht man bei Kubernetes unter einem NodePort?
Was versteht man unter dem Begriff der Sitzungsaffinität?
Was ist der Unterschied bei der Dienstbereitstellung zwischen einem LoadBalancer und einem NodePort? Wägen Sie (in Stichpunkte strukturiert) Vor- und Nachteile ab.
Im Zusammenhang mit Services haben wir es mit verschiedenen
Port-Typen zu tun. Erläutern Sie den Unterschied zwischen
port
, targetPort
und nodePort
.
Was bedeutet im Zusammenhang mit Diensten die Einstellung
externalTrafficPolicy: Local
?
Erklären Sie die Nachteile von NodePort und LoadBalancer und erläutern Sie, welche Vorteile ein Ingress bietet und wie ein Ingress funktioniert.
Auf welcher OSI-Schicht läuft ein Ingress?
Was ist die Aufgabe einer Bereitschaftsonde? Erläutern Sie diese Aufgabe an einem Beispiel und arbeiten Sie den Unterschied zu einer Aktivitätssonde prägnant heraus.
Welche Arten von Bereitschaftssonden werden unterschieden? Erläutern Sie diese kurz.
Was passiert mit einem Pod, wenn die Bereitschaftsonde meldet, dass der Pod nicht bereit ist? Vergleichen Sie dies mit der Funktionsweise einer Aktivitätssonde.
Erläutern Sie an einem gut gewählten Beispiel, die Wichtigkeit von Bereitschaftsonde .
Was versteht man bei Kubernetes unter einem Headless-Dienst? Was ist eine typische Anwendung eines Headless-Dienstes?
Wie findet man für einen Headless-Dienst die IP-Adressen der hinter dem Dienst liegenden Pods heraus?
Warum ist es in einer Kubernetes-Umgebung nicht immer sinnvoll die Verfügbarkeit eines Services über ein IP-Ping zu testen?
Was versteht man unter einem Kubernetes-Volume? Welche Aufgabe erfüllt ein Kubernetes-Volume?
Ist ein Kubernetes-Volume einem Pod oder einem Container zugeodrnet? Erläutern Sie diese Fragestellung.
Was ist die Lebensdauer eines Kubernetes-Volumes? Wie verhält es sich mit der Lebensdauer der Daten in einem Kubernetes-Volume?
Nennen Sie mindestens drei verschiedene Typen von Kubernetes-Volumes und erläutern Sie diese kurz. (Punkteabzug bei Falschnennung.)
Was sind die typischen Verwendungszwecke für ein
Kubernetes-Volume vom Typ emptyDir
?
Können bei Kubernetes Git-Repositories als Ausgangspunkt für ein Volume verwendet werden?
Beschreiben Sie an einem Beispiel die Beziehung
zwischen einem gitRepo
Volume und dem
zugehörigen Git-Repository.
Wie lässt sich ein gitRepo
Volume mit
dem zugehörigen Git-Repository synchron halten?
Was versteht man unterm einem Side-Container? Geben Sie ein gutes Beispiel für den Einsatz eines Side-Containers an.
Für welche Anwendungen sind hostPath
-Volumes
geeignet? Geben Sie ein Beispiel.
Welche speziellen Eigenschaften haben hostPath
-Volumes?
Welche spezielle Einschänkung haben hostPath
-Volumes?
Welche der folgenden Volumetypen ist für die persiste Datenspeicherung geeignet:
emptyDir
-Volumes?gitRepo
-Volumes?hostPath
-Volumes?Eine Pod möchte Daten auf einem Linux-NAS persistent speichern. Beschreiben Sie die grundsätzliche Vorgehensweise, wie ein NFS-Volume auf dem Linux-NAS in Kubernetes eingebunden werden kann.
Was versteht man bei Kubernetes unter einem PersistentVolume
? Was versteht man bei Kubernetes
unter einem PersistentVolumeClaim
?
Erläutern Sie für Kubernetes anhand einer Skizze das
Zusammenspiel zwischen PersistenVolume
und
PersistentVolumeClaim
. Gehen Sie hierbei
auf die Rollen Administrator und Anwendungsentwickler
ein.
Was sind die Vorteile bei der Verwendung von persistent Volumes und Claims?
Was wird mit dem Parameter VolumeReclaimPolicy
gesteuert. Erläutern Sie dies an einem Beispiel.
Welche Idee verbirgt sich hinter der dynamischen Bereitstellung von persistenten Volumes? Welche Vorteile ergeben sich hierdurch?
Wie wird die dynamischen Bereitstellung von persistenten Volumes realisiert? Was ist hierfür praktisch notwendig?
Beschreiben Sie klar strukturiert, auf welche verschiedenen Arten sich in Kubernetes Anwendungen konfigurieren lassen. Gehen Sie kurz auf die Vor- und Nachteile der jeweiligen Methode ein.
In einem Docker-File sind die Anweisungen ENTRYPOINT
und
CMD
möglich.
Erläutern Sie die Bedeutung und den korrekten Gebrauch
dieser beiden Anweisungen.
In einem Docker-File sind die Anweisungen ENTRYPOINT node app.js
und
ENTRYPOINT
["node", "app.js"]
möglich. Erläutern Sie den
Unterschied zwischen diesen beiden Anweisungen.
Welche der folgenden Anweisungen eines Docker-Files können durch Kubernetes überschrieben werden?
ENTRYPOINT
CMD
Auf welcher Ebene können in Kubernetes Umgebungsvariablen für Container definiert werden?
Kann bei Kubernetes in Umgebungsvariablen auf Werte in anderen Umgebungsvariablen verwiesen werden? Wenn ja, warum ist das sinnvoll (Beispiel)? Wenn nein, warum ist das nicht möglich (Begründung)?
Erläutern Sie an einem Beispiel die Nachteile hardkodierter Umgebungsvariablen. Wie lassen sich bei Kubernetes diese Nachteile vermeiden?
Beschreiben Sie knapp, aber präzise, was man bei
Kubernetes unter einem ConfigMap
-Objekt
versteht. Was sind typische Anwendungsfälle für ConfigMap
-Objekte?
Erläutern Sie anhand eines typischen Beispiels den
Einsatz von ConfigMap
-Objekten. Verdeutlichen Sie Ihre
Ausführungen anhand einer Abbildung.
Muss eine Applikation in einem Pod von der Existenz
eines ConfigMap
-Objekts wissen. Erläutern
bzw. begründen Sie Ihre Antwort.
Welche Möglichkeiten der Konfigurationszuordnung stellt Kubernetes bereit? Erläutern Sie diese kurz. (Hinweis: Strukturieren Sie Ihre Antwort in: Möglichkeit 1:, Möglichkeit 2:, ...)
Einer Konfigurationszuordnung in Kubernetes kann auch ein Verweis auf einen Konfigurationsfile übergeben werden. Enthält die Zuordnung nur den Verweis auf den Konfigurationsfile oder auch dessen Inhalt?
Wie wird bei Kubenetes im Zusammenhang mit
Konfigurationszuordnungen (ConfigMap
-Objekten)
der Zuordnungsschlüssel definiert. Erläutern Sie - klar
strukturiert - verschiedene Möglichkeiten und Szenarien.
Können bei der Erstellung von Konfigurationszuordnungen verschiedene Quellen in eine Konfigurationszuordnung kombiniert werden?
Konfigurationseintragungen in einer ConfigMap können in einer Pod-Definition den Umgebungsvariablen eines Containers zugewiesen werden. Welche Möglichkeiten einer Auswertung einer ConfigMap kennen Sie noch?
Können Pods durch Änderungen in der Konfigurationszuordnung (löschen+neuerstellen) dynamisch konfiguriert werden?
Warum werden bei Containeranwendungen so gerne Umgebungsvariablen verwendet?
Welche Möglicheiten gibt es, um eine Konfigurationzuordnung zu erstellen?
xxxxx
Was benötigt ein Container in einem Pod, damit er bei Bedarf mit dem Kubernetes-API-Server kommunizieren kann?
Beschreiben Sie die Bestandteile des Secrets default-token
. Für was genau werden die einzelnen
Bestanteile benötigt?
Was versteht man bei Kubernetes unter einer Downward-API und was unter einem Downward-API-Volume? Erklären Sie beide Begriffe.
Welche Funktion hat bei einem Pod das Dienstkonto? Wann wird dieses benutzt?
Warum können Labels und Anmerkungen nicht über Umgebungsvariablen verfügbar gemacht werden?
Wann sollte man eine Downward-API verwenden? Was sind typische Anwendungsfelder? Was sind die Begrenzungen der Downward-API? Welche Möglichkeiten bieten sich an, wenn die Downward-API nicht mehr ausreichend ist.
Welche Funktionen stellt Ihnen die REST-API von Kubernetes zur Verfügung. Was können Sie mit dieser API machen?
Welche drei Aufgaben müssen Sie erfüllen, wenn Sie von einem Pod aus mit dem Kubernetes API-Server kommunizieren möchten?
latest
. Welche Rolle spielt hierbei die
Container-Eigenschaft imagePullPolicy
? Was
genau bewirkt die Eigenschaft imagePullPolicy
und wie ist imagePullPolicy
in der Praxis
zu verwenden?kubectl rolling-update ...
ein Replikationskontroller
aktualisieren lässt.kubectl rolling-update
...
zur Aktualisierung veraltet? Stellen Sie
strukturiert die Probleme in Zusammenhang mit dieser
Aktualisierungmethode dar.maxSurge
und maxUnavailable
. Veranschaulichen Sie mit einem
prägnanten Beispiel, wie mit diesen beiden Eigenschaften
bei Kubernetes der Aktualisierungsprozess eines
Deployments gesteuert wird. minReadySeconds
Fehler
beim Rollout-Prozess minimiert werden.