ReplicaSet Flashcards
Hoe check je het aantal replicas in een ReplicaSet?
Gebruik het commando kubectl get replicaset <replicaset-name> om het aantal replicas en hun status te bekijken.</replicaset-name>
Waarom zou je een ReplicaSet gebruiken in plaats van een Deployment?
Je zou een ReplicaSet gebruiken als je eenvoudig het aantal replica’s van een pod wilt beheren zonder automatische updates of rollbacks. Dit is nuttig in scenario’s waarin je geen rolling updates nodig hebt.
Wat gebeurt er als je een ReplicaSet verwijdert?
Wanneer een ReplicaSet wordt verwijderd, worden de bijbehorende pods ook verwijderd. Dit heeft geen invloed op andere ReplicaSets of Deployments.
Hoe stel je resource limits in voor een container in een ReplicaSet?
Je kunt resource limits instellen onder spec.template.spec.containers.resources:
yaml
Code kopiëren
resources:
limits:
memory: “1Gi”
cpu: “1”
Hoe gebruik je een Horizontal Pod Autoscaler (HPA) met een ReplicaSet?
De Horizontal Pod Autoscaler kan het aantal replicas van een ReplicaSet aanpassen op basis van CPU-gebruik of andere metrics. Je maakt een HPA object dat de ReplicaSet target:
yaml
Code kopiëren
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: my-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: ReplicaSet
name: my-replicaset
minReplicas: 2
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
targetAverageUtilization: 80
Hoe stel je affinity rules in voor een ReplicaSet?
Je kunt affinity gebruiken om de pod scheduling te beïnvloeden op basis van node labels:
yaml
Code kopiëren
affinity:
podAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchLabels:
app: my-app
topologyKey: kubernetes.io/hostname
wat betekent requiredDuringSchedulingIgnoredDuringExecution:
en topologyKey
in podaffinity
requiredDuringSchedulingIgnoredDuringExecution: Dit geeft aan dat de opgegeven affiniteit- of anti-affinitievoorwaarden moeten worden gecontroleerd tijdens het plannen van de pod, maar niet meer gelden nadat de pod is uitgevoerd (bijvoorbeeld als de pod op een andere node wordt geplaatst door een herplanning).
topologyKey: Dit bepaalt welk kenmerk van de node (zoals kubernetes.io/hostname of topology.kubernetes.io/zone) moet worden gebruikt om de affiniteit- of anti-affinitie te controleren. Het helpt bij het afdwingen van locaties voor je pod binnen een cluster op basis van de topologische structuur.
Hoe koppel je een volume aan een ReplicaSet?
e kunt een volume toevoegen onder spec.template.spec.volumes en vervolgens de volume mounten in de container onder spec.template.spec.containers.volumeMounts:
yaml
Code kopiëren
volumes:
- name: my-volume
emptyDir: {}
containers:
- name: my-container
image: nginx
volumeMounts:
- name: my-volume
mountPath: /mnt
Kan een ReplicaSet in een specifieke namespace worden gemaakt?
Ja, je kunt een ReplicaSet in een specifieke namespace maken door de metadata.namespace in de YAML te specificeren:
metadata:
name: my-replicaset
namespace: my-namespace
Hoe voeg je een init container toe aan een ReplicaSet?
Voeg de initContainers sectie toe aan de spec.template.spec van de ReplicaSet:
yaml
Code kopiëren
initContainers:
- name: init-container
image: busybox
command: [‘sh’, ‘-c’, ‘echo Hello Kubernetes’]
wat is een initContainer ook alweer?
een container die eerst iets uitvoert
Hoe kan een PodDisruptionBudget samenwerken met een ReplicaSet?
Een PodDisruptionBudget helpt te garanderen dat een bepaald aantal pods van een ReplicaSet beschikbaar blijft, zelfs tijdens een vrijwillige verstoring zoals een update.
yaml
Code kopiëren
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: my-pdb
spec:
minAvailable: 2
selector:
matchLabels:
app: my-app
Hoe gebruik je labels in een ReplicaSet?
Je gebruikt labels om de pods die door de ReplicaSet worden beheerd te identificeren. De labels worden gedefinieerd onder spec.template.metadata.labels en spec.selector.matchLabels:
yaml
Code kopiëren
spec:
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
Hoe stel je resource requests in voor een container in een ReplicaSet?
Stel resource requests in onder de resources sectie in de containerconfiguratie:
yaml
Code kopiëren
resources:
requests:
memory: “500Mi”
cpu: “500m”
limits:
memory: “1Gi”
cpu: “1”
Hoe stel je een liveness probe in voor een container in een ReplicaSet?
Een liveness probe kan worden toegevoegd aan de container-specificatie in de spec.template.spec van de ReplicaSet:
yaml
Code kopiëren
livenessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 3
periodSeconds: 5