oefenexamen mix 4 Flashcards
Admission Controller
Een Admission Controller in Kubernetes is een mechanisme dat controleert en (indien nodig) wijzigt wat er in een cluster gebeurt bij resource-aanvragen (zoals Pods of Deployments). Ze werken na validatie, maar voor de opslag van de resource in de clusterstatus.
Taken van Admission Controllers:
-Validatie: Controleert of een aanvraag voldoet aan bepaalde regels (bijv. geen ongepaste labels).
-Mutatie: Wijzigt aanvragen (bijv. automatisch toevoegen van labels).
-Beleid afdwingen: Zorgt dat bepaalde voorwaarden, zoals resource-limieten, worden nageleefd.
Voorbeelden van Admission Controllers:
-LimitRanger: Dwingt resource-limieten af.
- PodSecurityPolicy: Controleert de beveiliging van Pods.
- ValidatingAdmissionWebhook: Gebruikt webhooks voor validatie.
Ze helpen om beveiliging, compliance en organisatiebeleid in Kubernetes af te dwingen.
soorten admission controllers
Soorten Admission Controllers:
Mutating Admission Controllers: Deze wijzigen de aanvraag (bijv. automatisch labels toevoegen of standaardwaarden instellen).
Validating Admission Controllers: Deze valideren de aanvraag (bijv. controleren of de Pods voldoen aan bepaalde beveiligingsregels), maar kunnen geen wijzigingen aanbrengen.
Belangrijke Admission Controllers voor CKAD
LimitRanger: Dwingt resource-limieten af, zoals CPU of geheugen.
NamespaceLifecycle: Zorgt ervoor dat resources niet worden gemaakt in een verwijderde namespace.
PodSecurityPolicy (gearchiveerd in latere versies): Voordat het werd vervangen door PodSecurity, was het een veelgebruikte Admission Controller om beveiligingsstandaarden af te dwingen op Pods.
ValidatingAdmissionWebhook en MutatingAdmissionWebhook: Kunnen externe webhooks gebruiken om validatie of mutatie van resources uit te voeren.
wat is fsGroup in security context?
fsGroup: 1001 # Groep-ID 1001 voor gedeelde bestanden
Dit maakt het makkelijker om bestanden te delen en samen te werken tussen containers zonder zich zorgen te maken over individuele gebruikers- of groepsinstellingen.
wat zijn capabilities in de securityContext
Capabilities zorgen ervoor dat je gedetailleerd kunt instellen welke systeemrechten een container heeft, waardoor je de veiligheid van je applicaties kunt verbeteren.
apiVersion: v1
kind: Pod
metadata:
name: cap-example
spec:
containers:
- name: my-container
image: myapp:latest
securityContext:
capabilities:
add: [“NET_ADMIN”] # Geeft de container netwerkbeheerrechten
drop: [“SYS_TIME”] # Verwijdert de mogelijkheid om de systeemklok te veranderen
alleen op container niveau
Admission Controller
Een soort regel of beleid die bepaalt hoe bepaalde acties (zoals het creëren of bijwerken van resources) in het cluster worden goedgekeurd of gemanipuleerd. het valideert en wijzigt aanvragen om te zorgen dat ze voldoen aan de gewenste configuratie en beveiligingsstandaarden. hij autenticate de user niet
wat zijn de- –enable-admission-plugins in de commands van de pod?
- –enable-admission-plugins=NodeRestriction,NamespaceAutoProvision
daarmee kan je admission controllers enabelen
wat is een annotation
Een annotation in Kubernetes is een manier om extra metadata toe te voegen aan resources, zoals Pods of Services, zonder dat het invloed heeft op de werking of selectie van die resources. In tegenstelling tot labels kunnen annotations grotere hoeveelheden gegevens bevatten en worden ze vaak gebruikt voor informatie zoals logging, versiebeheer en configuraties. (onder metadata)
wat gebeurt er als je een service account maakt?
een service account resource wordt gemaakt, een service account token wordt automatisch gegenereerd, voor het token wordt automatisch een secret gemaakt en die is automatisch gelinkd naar service account. om dit te zien doe je kubectl describe secret <name-token>. LET OP. dat gebeurde eerst. na verandering niet meer. nu moet je commando uitvoeren kubectl create token <name></name></name-token>
is er altijd een default service account?
ja iedere namespace heeft een default service account automatisch. Als je een pod runt wordt er automatisch gemount daarnaar.
nieuwe service account maken op pod
je kan op een bestaande pod geen nieuwe service account maken. dan moet je eerst de pod verwijderen en opnieuw maken.
autoMountServiceAccountToken=false
optie in yaml om niet automatisch een service account aan te maken
resource memory getallen
1G (gigabyte)
1M (Megabyte)
1 Gi (gigibyte)
1 Mi (mebibyte)
1 Ki (kikibyte)
wat gebeurt er als je teveel cpu of memory gebruikt met de pod?
cpu kan je niet meer gebruiken dan het limit maar bij memory kan je wel meer gebruiken dan de limit. maar dan terminate de pod want die gaat out of memory. = OOM error in log
by default zijn er geen limiten, moet je zelf instellen.
verschil request en limit
request = hoeveel CPU of geheugen een container minimaal nodig heeft om te draaien
limit= maximale hoeveelheid CPU of geheugen specificeert die de container mag gebruiken. Het
request wordt gebruikt om de pod op een node te plannen, terwijl de limit voorkomt dat de container de resources van de node overschrijdt.