Ongoing service disruptions
For the most recent update on ongoing service disruptions affecting the AWS Middle East (UAE) Region (ME-CENTRAL-1), refer to the AWS Health Dashboard. For information on AWS Service migration, see How do I migrate my services to another region?
Wie konfiguriere ich Amazon EKS-Worker-Knoten, um den Image-Cache bei einem bestimmten Prozentsatz der Festplattennutzung zu bereinigen?
Ich möchte Amazon Elastic Kubernetes Service (Amazon EKS) Worker-Knoten verwenden, um den Image-Cache bei einem bestimmten Prozentsatz der Festplattennutzung zu bereinigen.
Kurzbeschreibung
Verwende die folgenden Kubelet-Garbage Collection-Argumente, um den Image-Cache mit Amazon EKS-Worker-Knoten zu bereinigen:
- **---image-gc-high-threshold ** definiert den Prozentsatz der Festplattennutzung, mit dem Kubelet beginnt, die Image-Garbage-Collection auszuführen.
Hinweis: Die Standardeinstellung für dieses Argument beträgt 85 %. - **--image-gc-low-threshold ** definiert den niedrigsten Prozentsatz der Festplattennutzung, auf dem Kubelet die Kubelet-Image-Garbage-Collection ausführt.
Hinweis: Die Standardeinstellung für dieses Argument beträgt 80 %.
Füge je nach Anwendungsfall die Kubelet-Garbage-Collection zur Standardkonfigurationsdatei oder zu einem vorhandenen Knoten hinzu. Stelle dann sicher, dass die Argumente im Knotenendpunkt vorhanden sind.
Weitere Informationen findest du auf der Kubernetes-Website unter Garbage Collection ungenutzter Container und Images.
Behebung
Hinweis: Die folgende Lösung gilt für Linux Amazon Machine Images (AMIs), die für Amazon EKS optimiert sind.
Hinzufügen der Kubelet Garbage Collection-Argumente zur Standard-Kubelet-Konfiguration
Führe die folgenden Schritte aus:
- Führe den folgenden Befehl aus, um die Datei kubelet-config im AMI zu aktualisieren:
Hinweis: Ersetze your_cluster_name durch den Amazon EKS-Clusternamen. Wenn du nicht die Standard-Kubelet-Konfigurationsdatei verwenden, ersetze kubelet-config.json durch den Dateinamen. Der vorhergehende Befehl setzt imageGCHighThresholdPercent auf 70 % und ImageGClowThresholdPercent auf 60 %. Infolgedessen bereinigt Kubelet den Image-Cache im Worker-Knoten, wenn die Festplattennutzung 70 % erreicht. Wenn die Festplattennutzung weniger als 60 % beträgt, bereinigt Kubelet den Image-Cache nicht.#!/bin/bashset -o xtrace KUBELET_CONFIG=/etc/kubernetes/kubelet/kubelet-config.json # Inject imageGCHighThresholdPercent value unless it has already been set. if ! grep -q imageGCHighThresholdPercent $KUBELET_CONFIG; then echo "$(jq ".imageGCHighThresholdPercent=70" $KUBELET_CONFIG)" > $KUBELET_CONFIG fi # Inject imageGCLowThresholdPercent value unless it has already been set. if ! grep -q imageGCLowThresholdPercent $KUBELET_CONFIG; then echo "$(jq ".imageGCLowThresholdPercent=60" $KUBELET_CONFIG)" > $KUBELET_CONFIG fi /etc/eks/bootstrap.sh your-cluster-name - Erstelle eine Worker-Knotengruppe mit der Startvorlage.
Die Kubelet Garbage Collection-Argumente zu einem vorhandenen Worker-Knoten hinzufügen
Voraussetzungen: Du musst über SSH-Verbindungszugriff zu einem vorhandenen Worker-Knoten verfügen und über Sudo-Zugriff verfügen.
Gehe wie folgt vor, um einem vorhandenen Worker-Knoten Kubelet-Garbage Collection-Argumente hinzuzufügen:
-
Verwende SSH, um eine Verbindung zu einem vorhandenen Worker-Knoten herzustellen.
-
Führe den folgenden Befehl aus, um die Datei /etc/kubernetes/kubelet/kubelet-config.json im Worker-Knoten zu öffnen:
sudo vi /etc/kubernetes/kubelet/kubelet-config.jsonWenn du den Worker-Knoten mit eksctl gestartet hast, führe den folgenden Befehl aus, um /etc/eksctl/kubelet.yaml zu öffnen:
sudo vi /etc/eksctl/kubelet.yaml -
Füge die Kubelet-Garbage Collection-Argumente zur Datei kubelet-config.json hinzu und speichere dann die Datei. Beispieldatei:
{ "kind": "KubeletConfiguration", "apiVersion": "kubelet.config.k8s.io/v1beta1", . . . "imageGCHighThresholdPercent": 70, ==> Add the argument under the same alignment as the "kind" "imageGCLowThresholdPercent": 60, "maxPods": ... }Hinweis: Der vorhergehende Befehl setzt ImageGCHighThresholdPercent auf 70 % und ImageGClowThresholdPercent auf 60 %.
Wenn du den Worker-Knoten mit eksctl gestartet hast, füge die Kubelet-Garbage Collection-Argumente zur kubelet.yaml-Datei hinzu und speichere die Datei dann. Beispieldatei:kind: KubeletConfiguration kubeReserved: cpu: 70m ephemeral-storage: 1Gi memory: 1843Mi serverTLSBootstrap: true imageGCHighThresholdPercent: 70 ==> Add the arguments under the alignment "Kind" in the yaml file imageGCLowThresholdPercent: 60Hinweis: Der vorhergehende Befehl setzt ImageGCHighThresholdPercent auf 70 % und ImageGClowThresholdPercent auf 60 %.
-
Führe den folgenden Befehl aus, um den Kubelet-Dienst im Worker-Knoten neu zu starten:
sudo service kubelet restart -
Wiederhole die vorherigen Lösungsschritte für jeden vorhandenen Worker-Knoten im Amazon EKS-Cluster.
Sicherstellen, dass sich die neuen Kubelet Garbage Collection-Argumente im Configz-Endpunkt des Knotens befinden
Führe die folgenden Schritte aus:
-
Führen den folgenden Befehl aus, um den Namen der Worker-Knoten abzurufen:
kubectl get nodes -
Führe den folgenden Befehl aus, um eine Verbindung zum API-Server herzustellen:
kubectl proxy -
Um die Konfiguration des Knotens zu überprüfen, öffne ein neues Terminal und führe dann den folgenden Befehl aus:
curl -sSL "http://localhost:8001/api/v1/nodes/node_name/proxy/configz" | python3 -m json.toolHinweis: Ersetzen node_name durch deinen Knotennamen. Wenn du curl oder Python nicht verwenden kannst, öffne die URL http://localhost:8001/api/v1/nodes/node_name/proxy/configz in einem Webbrowser.
Beispielausgabe:{"kubeletconfig": { . . "imageGCHighThresholdPercent": 70, <=== The new value is set to 70 as given in UserData "imageGCLowThresholdPercent": 60, <=== The new value is set to 50 as given in UserData . . } }Hinweis: Die vorherige Befehlsausgabe zeigt die Einstellungen für die Datei bootstrap.sh aus der Datei kubeletconfig.
- Themen
- Containers
- Sprache
- Deutsch

Relevanter Inhalt
AWS OFFICIALAktualisiert vor 8 Monaten
AWS OFFICIALAktualisiert vor 7 Monaten