kodekloud Flashcards
leg Taint en tolerant uit
is te vergelijken met spray op mens die mug weghoudt. Alleen een tolerant mug kan alsnog op de taint terecht komen. taint betekent smet/bederven
de taints staan op de nodes en de tolerations op de pods
hoe zet je met een commando een taint
kubectl taint nodes <nodenaam> key=value:taint-effect</nodenaam>
er zijn 3 effects: NoSchedule, PreferNoSchedule, NoExecute
hoe voeg je een toleration toe aan een pod?
in de pod yaml onder spec, op hetzelfde niveau als container (niet in container)
waarom worden er geen pods gedraaid op de master node?
er staat automatisch een taint op.
hoe check je met een commando of er een taint op de node zit?
k describe node node01 | grep Taints (let op hoofdletter gevoelig)
operators in toleration
Er zijn drie soorten operator in Kubernetes tolerations:
Exists: De toleratie geldt wanneer de key bestaat, ongeacht de waarde van de key.
Equal: De toleratie geldt alleen als de key en waarde exact overeenkomen met de taint.
NotEqual: De toleratie geldt alleen als de key aanwezig is, maar de waarde niet overeenkomt met de opgegeven waarde van de taint.
Deze operators bepalen hoe de toleraties overeenkomen met de taints die op nodes zijn toegepast.
wat is nodeselector
een pod kan je een nodeselector meegeven. dat is een key value paar die match met een label in de node.
onder spec, op zelfde niveau als container (niet in container).
wat is het voordeel van node affinity ten opzichte van nodeselector met labels?
nodeselector kan je maar 1 node mee selecteren, maar als je bijvoorbeeld wil zeggen dat die tussen 2 kan kiezen. je kan het lijstje dan uitbreiden
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: topology.kubernetes.io/zone
operator: In
values:
- antarctica-east1
- antarctica-west1
In: label en een van de onderstaande waardes
NotIn: waarde van de label mag niet een van die waardes hebben
Exists: gecheckt op key, waarde niet interessant
Voor CKAD moet je de volgende node affinity types kennen
requiredDuringSchedulingIgnoredDuringExecution: Dit betekent dat de pod alleen op een node kan worden gepland die voldoet aan de node affinity regels. Het is verplicht tijdens het plannen.
preferredDuringSchedulingIgnoredDuringExecution: Dit geeft aan dat de pod voorkeur heeft voor een node met de opgegeven eigenschappen, maar het is niet verplicht.
pas op je hebt node affinity maar ook podantiaffinity
kijk goed dus
nadeel van taints en tolerations
als je een node een taint hebt een een pod dezelfde tolerant, dan heb je geen garantie dat die pod ook op die node komt. Hij kan ook op een node komen die geen taint heeft. oplossing. ook node affinity erbij gebruiken
nadeel node affinity
als je een pod naar een node affinity doet met een node met dezelfde label, kan het zijn dat andere pods zonder dat label ook op die node komen. oplossing. ook taints en tolerants erbij gebruiken
init container
Een init container in Kubernetes is een speciale container die draait voor de hoofdcontainers in een Pod. Het wordt gebruikt om voorbereidende taken uit te voeren, zoals het instellen van omgevingsvariabelen, het downloaden van configuraties of het uitvoeren van scripts. Init containers worden sequentieel uitgevoerd en moeten succesvol zijn voordat de hoofdcontainers starten.
komt dus voor bij multi container pods
wat is een deamonset
Een DaemonSet zorgt ervoor dat een bepaalde Pod op alle of geselecteerde nodes in een Kubernetes-cluster draait. Het wordt vaak gebruikt voor beheerfuncties zoals logging, monitoring of netwerkbeheer, waarbij je wilt dat een pod op elke node aanwezig is.
wat is een DNS
DNS (Domain Name System) in Kubernetes wordt gebruikt om services en pods binnen het cluster te identificeren via domeinnamen in plaats van IP-adressen. Het maakt het eenvoudiger om met verschillende Kubernetes-resources te communiceren, omdat ze automatisch een DNS-naam krijgen toegewezen voor interne communicatie binnen het cluster.