Anpassen der Kubelet-Konfiguration - Eksctl-Benutzerhandbuch

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Anpassen der Kubelet-Konfiguration

Systemressourcen können über die Konfiguration des Kubelets reserviert werden. Dies wird empfohlen, da das Kubelet im Falle eines Ressourcenmangels möglicherweise nicht in der Lage ist, Pods zu entfernen und den Knoten schließlich zu einem Knoten zu machen. NotReady Zu diesem Zweck können die Konfigurationsdateien das kubeletExtraConfig Feld enthalten, das ein YAML in freier Form akzeptiert, das in die eingebettet wird. kubelet.yaml

Einige Felder in der kubelet.yaml werden von eksctl gesetzt und können daher nicht überschrieben werden, wie z. B. das,,address, clusterDomain oder. authentication authorization serverTLSBootstrap

Die folgende Beispielkonfigurationsdatei erstellt eine Knotengruppe, die 300m vCPU, 300Mi Arbeitsspeicher und 1Gi kurzlebigen Speicher für das Kubelet, 300m vCPU, 300Mi Speicher und kurzlebigen Speicher für Betriebssystem-Daemons reserviert und 1Gi Pods löscht, wenn weniger als Speicher verfügbar ist oder weniger als 10% des Root-Dateisystems verfügbar sind. 200Mi

apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: dev-cluster-1 region: eu-north-1 nodeGroups: - name: ng-1 instanceType: m5a.xlarge desiredCapacity: 1 kubeletExtraConfig: kubeReserved: cpu: "300m" memory: "300Mi" ephemeral-storage: "1Gi" kubeReservedCgroup: "/kube-reserved" systemReserved: cpu: "300m" memory: "300Mi" ephemeral-storage: "1Gi" evictionHard: memory.available: "200Mi" nodefs.available: "10%" featureGates: RotateKubeletServerCertificate: true # has to be enabled, otherwise it will be disabled

In diesem Beispiel CPUs würde bei Instanzen des Typs m5a.xlarge mit 4 V CPUs und 16 GiB Speicher die Größe von 3,4 und 15,4 GiB Speicher Allocatable betragen. Es ist wichtig zu wissen, dass die in der Konfigurationsdatei für die Felder angegebenen Werte die in kubeletExtraconfig eksctl angegebenen Standardwerte vollständig überschreiben. Wenn Sie jedoch einen oder mehrere Parameter weglassen, werden die fehlenden kubeReserved Parameter standardmäßig auf vernünftige Werte gesetzt, die auf dem verwendeten AWS-Instanztyp basieren.

kubeReservedBerechnung

Es wird zwar generell empfohlen, eine gemischte Instanz so NodeGroup zu konfigurieren, dass sie Instanzen mit derselben CPU- und RAM-Konfiguration verwendet, aber das ist keine strikte Anforderung. Daher verwendet die kubeReserved Berechnung die kleinste Instanz im InstanceDistribution.InstanceTypes Feld. Auf diese Weise werden NodeGroups bei unterschiedlichen Instanztypen nicht zu viele Ressourcen für die kleinste Instanz reserviert. Dies könnte jedoch zu einer Reservierung führen, die für den größten Instance-Typ zu klein ist.

Warnung

Standardmäßig eksctl festgelegtfeatureGates.RotateKubeletServerCertificate=true, aber wenn benutzerdefinierte Einstellungen bereitgestellt featureGates werden, werden sie nicht gesetzt. Sie sollten es immer einschließenfeatureGates.RotateKubeletServerCertificate=true, es sei denn, Sie müssen es deaktivieren.