ReplicaSets maken
Van toepassing op: AKS in Azure Local 22H2, AKS op Windows Server
In dit artikel wordt beschreven hoe u ReplicaSets maakt, schaalt en verwijdert in AKS die is ingeschakeld door Azure Arc. ReplicaSets worden gebruikt om ervoor te zorgen dat een stabiele set replicapods op elk gewenst moment wordt uitgevoerd.
Overzicht van ReplicaSets
Een ReplicaSet is een proces dat meerdere exemplaren van een pod uitvoert en het opgegeven aantal pods constant houdt. Het zorgt ervoor dat een stabiele set replicapods op elk gewenst moment wordt uitgevoerd, wat een beschikbaar opgegeven aantal identieke pods garandeert.
Wanneer een pod mislukt, wordt met een ReplicaSet een nieuw exemplaar van de pod weergegeven en opgeschaald wanneer de actieve exemplaren een opgegeven getal bereiken. Omgekeerd worden pods omlaag geschaald of verwijderd wanneer een exemplaar met hetzelfde label wordt gemaakt.
Een ReplicaSet maken
Gebruik de kubectl create
en kubectl apply
opdrachten om ReplicaSets te maken. In het volgende voorbeeld wordt een ReplicaSet gemaakt met behulp van een YAML-bestand:
kubectl apply –f nginx_replicaset.yaml
De functies van een ReplicaSet-configuratiebestand worden weergegeven in YAML-indeling:
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: web
labels:
env: dev
role: web
spec:
replicas: 4
selector:
matchlabels:
role: web
template:
metadata:
labels:
role: web
spec:
containers:
-name: nginx
image: nginx
Nadat u een ReplicaSet hebt gemaakt, kunt u de status bekijken door de volgende opdracht uit te voeren:
kubectl get rs
U kunt een pod verwijderen die door een ReplicaSet wordt beheerd, maar niet verwijderen door het label te wijzigen met behulp van de kubectl edit
opdracht. Als u bijvoorbeeld uitvoert kubectl edit pods 7677-69h5b
, kunt u het podlabel wijzigen zodra het configuratiebestand wordt geopend.
Een replicaset schalen
Er zijn twee manieren om het aantal pods te wijzigen dat door een ReplicaSet wordt beheerd.
Bewerk de configuratie van de controller met behulp van de volgende opdracht:
kubectl edit rs <ReplicaSet_NAME>
Verhoog of verklein het aantal rechtstreeks met behulp van de volgende opdracht:
kubectl scale –replicas=2 rs <ReplicaSet_NAME>
Wanneer u een manifestbestand bewerkt, kunt u uw bestaande configuratie vervangen door de bijgewerkte configuratie:
kubectl replace –f nginx_replicaset.yaml
Voer vervolgens de status van uw ReplicaSet uit om de status van uw ReplicaSet weer te geven kubectl get rs <ReplicaSet_NAME>
.
Automatische schaalaanpassing is ook een optie met ReplicaSets met behulp van kubectl autoscale rs web –max=5
. U kunt automatisch schalen gebruiken om het aantal pods aan te passen op basis van de CPU-belasting van een knooppunt.
Een replicaset verwijderen
Net als bij andere Kubernetes-objecten, zoals DaemonSets, kunt u ReplicaSets verwijderen met behulp van de kubectl delete
opdracht. U kunt bijvoorbeeld de volgende opdrachten gebruiken:
Als u een ReplicaSet wilt verwijderen met de naam ReplicaSet, voert u de volgende opdracht uit:
kubectl delete rs <ReplicaSet_NAME>
Als u een ReplicaSet wilt verwijderen met de bestandsnaam, voert u de volgende opdracht uit:
kubectl delete –f nginx_replicaset.yaml
Met de voorgaande opdrachten verwijdert u de ReplicaSet en alle pods die worden beheerd. Als u alleen de ReplicaSet-resource wilt verwijderen en de pods wilt behouden zonder eigenaar, moet u deze handmatig verwijderen. Als u een ReplicaSet handmatig wilt verwijderen, voert u de volgende opdracht uit:
kubectl delete rs <ReplicaSet_NAME> --cascade=false