Wat is Pod?

De kleinste eenheid die Kubernetes plaatst en uitvoert. Een Pod groepeert een of meer containers, die een netwerknamespace, inclusief het IP-adres, en volumes delen en via localhost met elkaar kunnen communiceren. Gewoonlijk bevat hij één applicatiecontainer, met zo nodig toegevoegde hulpcontainers. Pods zijn wegwerpbaar en krijgen bij het opnieuw aanmaken doorgaans een nieuwe naam en een nieuw IP-adres; hun aantal wordt daarom op peil gehouden door een Deployment of iets vergelijkbaars, en een Service biedt er een stabiel aanspreekpunt voor.

Japanse benaming: Pod

“Pod” komt voor in 13 oefenvragen uit 1 onderwerpen, bijv. Basis van cloud en containers.

Vakgebied: Basis van cloud en containers

Nu oefenen: vragen over Pod

In Kubernetes draait een Deployment met replicas: 3 drie Pods. Welke beschrijving van wat er gebeurt als een van deze Pods met kubectl delete pod wordt verwijderd, is juist?

  1. AOok de instelling van de Deployment wordt herschreven naar replicas: 2, en er blijven twee Pods draaien
  2. BEen controller merkt dat het werkelijke aantal onder het opgegeven aantal van 3 is gedaald en maakt één nieuwe Pod
  3. COok de andere twee Pods van de Deployment worden verwijderd, en de hele Deployment stopt
Antwoord en toelichting tonen

Antwoord: B. Een controller merkt dat het werkelijke aantal onder het opgegeven aantal van 3 is gedaald en maakt één nieuwe Pod

In Kubernetes declareren gebruikers een gewenste toestand, zoals „draai drie Pods”, en controllers bekijken herhaaldelijk de werkelijke toestand en grijpen in om die dichter bij de declaratie te brengen als ze verschillen (reconciliatie). Het verwijderen van één Pod maakt het werkelijke aantal 2, dus maakt de ReplicaSet-controller een nieuwe Pod om weer op 3 te komen. Als een Pod verloren gaat doordat een node uitvalt, maakt hetzelfde mechanisme hem op een andere node opnieuw. Om het aantal Pods echt te verminderen, verandert men de replicas van de Deployment in plaats van Pods te verwijderen.

In een Kubernetes-Deployment wordt het containerimage in de Pod-template veranderd in een nieuwe versie. Welke beschrijving van wat er gebeurt met de standaardupdatestrategie (RollingUpdate) is juist?

  1. AEr wordt een nieuwe ReplicaSet gemaakt, en Pods van de nieuwe versie worden toegevoegd terwijl Pods van de oude versie worden verwijderd. De oude ReplicaSet blijft met 0 Pods bestaan voor een rollback
  2. BHet containerimage in de draaiende Pods wordt ter plaatse door de nieuwe versie vervangen zonder de Pods opnieuw te maken; de IP-adressen en de namen van de Pods veranderen dus niet
  3. CAlle Pods van de oude versie worden in één keer verwijderd en daarna worden de Pods van de nieuwe versie samen gemaakt; de dienst staat dus tijdens de update tijdelijk stil
Antwoord en toelichting tonen

Antwoord: A. Er wordt een nieuwe ReplicaSet gemaakt, en Pods van de nieuwe versie worden toegevoegd terwijl Pods van de oude versie worden verwijderd. De oude ReplicaSet blijft met 0 Pods bestaan voor een rollback

Als de Pod-template verandert, maakt een Deployment een ReplicaSet voor de nieuwe template en vermindert het, terwijl het nagaat dat nieuwe Pods gereed zijn, geleidelijk de Pods van de oude ReplicaSet. Een bepaald aantal Pods blijft dus tijdens de update aanvragen verwerken. De oude ReplicaSet wordt met 0 Pods bewaard, zodat kubectl rollout undo naar de vorige versie kan terugkeren. De strategie die eerst alle Pods verwijdert en ze dan opnieuw maakt, is Recreate; die wordt alleen gebruikt als ze expliciet wordt opgegeven.

“Pod” in de toelichting

Vragen met “Pod” (13)

  1. In Kubernetes draait een Deployment met replicas: 3 drie Pods. Welke beschrijving van wat er gebeurt als een van deze Pods met kubectl delete pod wordt verwijderd, is juist?
  2. In een Kubernetes-Deployment wordt het containerimage in de Pod-template veranderd in een nieuwe versie. Welke beschrijving van wat er gebeurt met de standaardupdatestrategie (RollingUpdate) is juist?
  3. Een Deployment met replicas: 10 heeft als instellingen voor de rolling update maxSurge: 25% en maxUnavailable: 25%. Welke combinatie van de bovengrens van het totale aantal Pods en de ondergrens van het aantal beschikbare Pods tijdens een update is juist?
  4. In Kubernetes krijgt een Pod telkens een ander IP-adres wanneer hij opnieuw wordt gemaakt. Met welke resource kunnen andere applicaties via een naam en een adres die niet veranderen, verbinding maken met meerdere Pods die met labels zijn geselecteerd, waarbij de belasting over die Pods wordt verdeeld?
  5. Een webapplicatie kan na het starten ongeveer 60 seconden lang, terwijl ze haar cache laadt, geen aanvragen verwerken en geeft in die tijd 503 terug op /ready. Welke beschrijving van het effect van het toevoegen van de bovenstaande instellingen aan de container van de Pod is juist?
  6. Een Kubernetes-HorizontalPodAutoscaler heeft een doel voor het CPU-gebruik van de Pods van 70% en een bereik van 1 tot 10 Pods. Op dit moment is het gemiddelde CPU-gebruik van 5 Pods 30%. Als het benodigde aantal Pods wordt berekend als ⌈huidig aantal × huidig gebruik ÷ doelgebruik⌉ (⌈ ⌉ betekent naar boven afronden), hoeveel Pods zijn er dan nodig?
  7. In een Deployment waarvan de containers van de Pods de bovenstaande instellingen hebben, draaien vier Pods die elk 400m (0,4 cores) CPU gebruiken. Het doel voor het CPU-gebruik van de HorizontalPodAutoscaler is 60%, en het benodigde aantal Pods wordt berekend als ⌈huidig aantal × huidig gebruik ÷ doelgebruik⌉. Hoeveel Pods zijn er nodig?
  8. Een node heeft als toewijsbare resources 4 CPU-cores en 8 GiB geheugen. Voor de container van elke Pod zijn als requests 500m CPU en 1,5 GiB geheugen en als limits 1 CPU-core en 2 GiB geheugen ingesteld. Er zijn geen andere Pods en geen reserveringen voor het systeem. Hoeveel Pods kunnen er maximaal op deze node worden geplaatst?
  9. Wat is in Kubernetes de kleinste eenheid die wordt gedeployed en beheerd, en die een of meer containers groepeert die hetzelfde IP-adres en dezelfde volumes delen?
  10. In een Kubernetes-cluster moeten HTTPS-aanvragen die voor één hostnaam binnenkomen, naar de Service api worden gestuurd als het pad met /api begint, en anders naar de Service web. Welke resource is geschikt om deze routeringsregel vast te leggen?
  11. Het wachtwoord van een database wordt in een Kubernetes-Secret opgeslagen. Welke beschrijving van een Secret is juist?
  12. Bij een webapplicatie op Kubernetes is de controle van de liveness-probe zo gemaakt dat ze ook nagaat of de applicatie verbinding kan maken met de database waarvan ze afhangt. Welk probleem is met deze instelling het meest waarschijnlijk?
  13. Welke beschrijving van de requests en limits voor resources die in Kubernetes voor een container worden ingesteld, is juist?

Verwante termen

Kubernetes Container HTTP (Hypertext Transfer Protocol) Containerimage DNS (Domain Name System) Loadbalancer Autoscaling TLS (Transport Layer Security) Reverse proxy Omgevingsvariabele (environment variable)

Naar de woordenlijst