Grundlagen von Cloud und Containern

Ein Container-Image, das eine CI/CD-Pipeline gebaut hat, wurde in der Staging-Umgebung getestet und hat die Tests bestanden. Wie wird dieses Image am besten in die Produktion ausgeliefert?

  1. AFür die Produktion das Image aus demselben Quellcode noch einmal bauen und dieses in die Produktion ausliefern
  2. BDem getesteten Image den Tag latest neu zuweisen und in der Produktionsumgebung latest angeben und holen
  3. CGenau das getestete Image über seinen Digest angeben und in die Produktion ausliefern und die Unterschiede zwischen den Umgebungen über die Konfiguration vorgeben
Antwort und Erläuterung anzeigen

Antwort: C. Genau das getestete Image über seinen Digest angeben und in die Produktion ausliefern und die Unterschiede zwischen den Umgebungen über die Konfiguration vorgeben

In einer Pipeline wird das beim Build erzeugte Artefakt (hier das Image) als unveränderlich behandelt, und dasselbe Artefakt wird von Staging zur Produktion weitergereicht. Selbst aus demselben Quellcode kann ein erneuter Build andere Versionen der Bibliotheken oder des Basis-Images einbeziehen, von denen er abhängt, sodass etwas anderes als das Getestete in die Produktion gelangt. Ein Tag kann später auf ein anderes Image umgesetzt werden; um sicher dasselbe Image zu bezeichnen, verwendet man daher den Digest, der durch den Inhalt bestimmt ist. Unterschiede zwischen den Umgebungen wie Verbindungsziele werden nicht in das Image eingebaut, sondern über Konfiguration wie Umgebungsvariablen vorgegeben.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Grundlagen von Cloud und Containern

  1. Wie oben gezeigt, wird das Verbindungsziel der Datenbank nicht in das Image geschrieben, sondern beim Start des Containers als Umgebungsvariable übergeben. Was ist der wichtigste Vorteil dieses Entwurfs?
  2. In einem System, in dem mehrere Dienste zusammenarbeiten, soll ermittelt werden, welche Dienste eine einzelne Nutzeranfrage in welcher Reihenfolge durchlaufen hat und wie viel Zeit sie jeweils darin verbracht hat. Welche der für Observability genutzten Daten eignen sich dafür am besten?
  3. Welche Kombination ordnet den Linux-Kernelfunktionen, auf denen Container beruhen, nämlich den Namespaces und den cgroups (Control Groups), ihre Aufgaben richtig zu?
  4. Auf einem Linux-Host wird mit Docker ein Container aus einem Image gestartet, das auf einer anderen Distribution als der des Hosts beruht, und darin werden uname -r (zeigt das Release des Kernels) und cat /etc/os-release (zeigt Angaben zur Distribution) ausgeführt. Welche Beschreibung der Ergebnisse ist richtig?
  5. Welche Beschreibung des Verhältnisses zwischen einem Container-Image und einem Container ist richtig?