Basis van cloud en containers

$ docker run -d -e DB_HOST=db.staging.example.com web:1.4.2
$ docker run -d -e DB_HOST=db.prod.example.com web:1.4.2

Zoals hierboven wordt het verbindingsdoel van de database niet in het image geschreven, maar bij het starten van de container als omgevingsvariabele doorgegeven. Wat is het belangrijkste voordeel van dit ontwerp?

  1. AWaarden in omgevingsvariabelen worden automatisch versleuteld; zelfs een wachtwoord kan dus niet door anderen worden gelezen
  2. BHetzelfde image kan in staging en productie worden gebruikt, waarbij alleen de instellingen veranderen en zonder opnieuw te bouwen; wat getest is, kan dus ongewijzigd naar productie
  3. CDe verbindingsgegevens komen niet in de lagen van het image terecht; het image heeft dus minder lagen en containers starten veel sneller
Antwoord en toelichting tonen

Antwoord: B. Hetzelfde image kan in staging en productie worden gebruikt, waarbij alleen de instellingen veranderen en zonder opnieuw te bouwen; wat getest is, kan dus ongewijzigd naar productie

Configuratie via omgevingsvariabelen doorgeven wordt ook aanbevolen door de methodologie The Twelve-Factor App, en het scheidt de code en het image van de omgeving waarin ze draaien. Hetzelfde image kan in staging en productie worden gebruikt; wat in productie komt, is dus precies wat getest is, en het image hoeft niet telkens opnieuw te worden gebouwd als het verbindingsdoel verandert. Omgevingsvariabelen zijn echter niet versleuteld; iedereen die de configuratie van de container of de procesinformatie kan zien, kan ze lezen. Vertrouwelijke waarden zoals wachtwoorden worden doorgegeven via mechanismen zoals Secrets van Kubernetes, die beperken wie ze mag lezen.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Basis van cloud en containers

  1. In een systeem waarin meerdere diensten samenwerken, wil men nagaan door welke diensten één aanvraag van een gebruiker is gegaan, in welke volgorde, en hoeveel tijd ze in elke dienst heeft gekost. Welke soort gegevens voor observability is hiervoor het meest geschikt?
  2. Welke combinatie van de Linux-kernelfuncties waarop containers berusten, namespaces en cgroups (control groups), met hun taak is juist?
  3. Op een Linux-host wordt met Docker een container gestart uit een image dat op een andere distributie dan die van de host is gebaseerd, en daarin worden uname -r (een opdracht die de release van de kernel toont) en cat /etc/os-release (een opdracht die informatie over de distributie toont) uitgevoerd. Welke beschrijving van de resultaten is juist?
  4. Welke beschrijving van de relatie tussen een containerimage en een container is juist?
  5. In een container die uit een image is gestart, wordt het configuratiebestand /etc/app.conf gewijzigd, dat deel uitmaakt van het image. Welke beschrijving van wat er gebeurt met het gangbare opslagmechanisme van Docker (zoals overlay2) is juist?