Unterstützung für die Verbesserung dieser Seite beitragen
Um zu diesem Benutzerhandbuch beizutragen, klicken Sie auf den Link Diese Seite auf GitHub bearbeiten, der sich im rechten Bereich jeder Seite befindet.
Anleitung: Verhindern, dass Pods auf bestimmten Knoten geplant werden
Übersicht
Der Betrieb von Knoten mit spezialisierten Prozessoren, beispielsweise GPUs, kann teurer sein als der von Knoten auf Standard-Rechnern. Um diese Knoten vor Workloads zu schützen, die keine spezielle Hardware erfordern, können Sie Kubernetes-Taints verwenden. Taints markieren Knoten, um Pods ohne übereinstimmende Toleranzen abzulehnen und so sicherzustellen, dass nur kompatible Workloads geplant werden. Weitere Informationen finden Sie unter Taints und Toleranzen
Kubernetes-Knoten-Taints können auf neue und vorhandene verwaltete Knotengruppen angewendet werden, indem Sie dieAWS-Managementkonsoleoder über die Amazon EKS API. Diese Anleitung zeigt, wie Sie mithilfe der AWS CLI Taints auf von Amazon EKS verwaltete Knotengruppen anwenden. Hinweise zum Erstellen einer Knotengruppe mit einem Taint mithilfe der AWS-Managementkonsole finden Sie unter Eine verwaltete Knotengruppe für Ihren Cluster erstellen.
Voraussetzungen
Schritte
Schritt 1: Knotengruppe mit Taints erstellen
Verwenden Sie den aws eks create-nodegroup-Befehl, um eine neue verwaltete Knotengruppe mit Taints zu erstellen. Dieses Beispiel wendet einen Taint mit Schlüssel dedicated, Wert gpuGroup und Effekt NO_SCHEDULE an.
aws eks create-nodegroup \ --cli-input-json ' { "clusterName": "my-cluster", "nodegroupName": "node-taints-example", "subnets": [ "subnet-1234567890abcdef0", "subnet-abcdef01234567890", "subnet-021345abcdef67890" ], "nodeRole": "arn:aws:iam::111122223333:role/AmazonEKSNodeRole", "taints": [ { "key": "dedicated", "value": "gpuGroup", "effect": "NO_SCHEDULE" } ] }'
Weitere Informationen und Beispiele finden Sie unter Taint
Schritt 2: Taints in einer vorhandenen Knotengruppe aktualisieren
Verwenden Sie den AWS-CLI-Befehl aws eks update-nodegroup-config, um Taints für verwaltete Knotengruppen hinzuzufügen, zu entfernen oder zu ersetzen.
aws eks update-nodegroup-config --cluster-name my-cluster --nodegroup-name node-taints-example --taints 'removeTaints=[{key=dedicated,value=gpuGroup,effect=NO_SCHEDULE}]'
Hinweise
-
Taints können aktualisiert werden, nachdem Sie die Knotengruppe mit dem
UpdateNodegroupConfig-API erstellen. -
Der Taint-Schlüssel muss mit einem Buchstaben oder einer Zahl beginnen. Es kann Buchstaben, Zahlen, Bindestriche (
-), Punkte (.) und Unterstriche (_) enthalten. Er kann bis zu 63 Zeichen lang sein. -
Optional kann der Taint-Schlüssel mit einem DNS-Subdomänenpräfix und einem einzelnen
/beginnen. Wenn er mit einem DNS-Subdomänenpräfix beginnt, kann er 253 Zeichen lang sein. -
Der Wert ist optional und muss mit einem Buchstaben oder einer Zahl beginnen. Es kann Buchstaben, Zahlen, Bindestriche (
-), Punkte (.) und Unterstriche (_) enthalten. Er kann bis zu 63 Zeichen lang sein. -
Bei direkter Verwendung von Kubernetes oder AWS-Managementkonsole muss der Taint-Effekt
NoSchedule,PreferNoSchedule, oderNoExecutesein. Bei Verwendung der AWS-CLI oder der API muss der Taint-Effekt jedochNO_SCHEDULE,PREFER_NO_SCHEDULEoderNO_EXECUTEsein. -
Für eine Knotengruppe sind maximal 50 Taints zulässig.
-
Wenn Taints, die mithilfe einer verwalteten Knotengruppe erstellt wurden, manuell von einem Knoten entfernt werden, fügt Amazon EKS die Taints nicht wieder zum Knoten hinzu. Dies gilt auch dann, wenn die Taints in der Konfiguration der verwalteten Knotengruppe angegeben sind.