Anpassen der Knotenkonfiguration für AKS-Knotenpools (Azure Kubernetes Service)

Durch Anpassen der Knotenkonfiguration können Sie die Betriebssystemeinstellungen oder Kubelet-Parameter so anpassen, dass sie den Anforderungen Ihrer Workloads entsprechen. Wenn Sie einen AKS-Cluster erstellen oder dem Cluster einen Knotenpool hinzufügen, können Sie eine Teilmenge der häufig verwendeten Betriebssystem- und kubelet-Einstellungen anpassen. Um Einstellungen über diese Teilmenge hinaus zu konfigurieren, verwenden Sie einen Daemon-Satz, um Ihre erforderlichen Konfigurationen anzupassen, ohne dass die Unterstützung von AKS für Ihre Knoten verloren geht.

Voraussetzungen

Wenn der Dienst die Unterstützung für neue Einstellungen und Kubelet-Parameter hinzufügt, kann die Registrierung eines Previewfunktions-Flags erforderlich sein. Wenn eine Vorschaukennzeichnung erforderlich ist, wird die Referenz zu den benutzerdefinierten Knotenkonfigurationsparametern aufgerufen.

Die Einstellungen kubeReserved, hardEvictionThreshold, softEvictionThreshold, softEvictionGracePeriod und evictionMaxPodGracePeriodInSeconds für Kubelet befinden sich in der Vorschau und erfordern das CustomNodeConfigPreview-Featureflag. Mit diesen Einstellungen können Sie Ressourcenreservierungen und Äumungsschwellenwerte anpassen, die auch durch die AKS Node-Härtung konfiguriert werden. Informationen zu Registrierungsschritten, Standardwerten und Beispielen finden Sie unter Node Hardening (Vorschau) in AKS.

Erstellen von benutzerdefinierten Knotenkonfigurationsdateien für AKS-Knotenpools

Um die Betriebssystem- und Kubelet-Konfiguration zu ändern, erstellen Sie eine neue Konfigurationsdatei mit den gewünschten Parametern und Einstellungen. Wenn Sie keinen Wert für einen Parameter angeben, wird der Standardwert verwendet.

Hinweis

Die folgenden Beispiele zeigen allgemeine Konfigurationseinstellungen. Ändern Sie die Einstellungen, um Ihre Workloadanforderungen zu erfüllen. Die vollständige Liste der unterstützten benutzerdefinierten Konfigurationsparameter finden Sie unter Benutzerdefinierte Knotenkonfigurationsparameter für AKS.

Kubelet-Konfiguration

Erstellen Sie eine Datei linuxkubeletconfig.json mit folgendem Inhalt:

{
 "cpuManagerPolicy": "static",
 "cpuCfsQuota": true,
 "cpuCfsQuotaPeriod": "200ms",
 "imageGcHighThreshold": 90,
 "imageGcLowThreshold": 70,
 "topologyManagerPolicy": "best-effort",
 "allowedUnsafeSysctls": [
  "kernel.msg*",
  "net.*"
],
 "failSwapOn": false
}

Informationen zum Anpassen von kube-reserved-Ressourcen und Eviction-Schwellenwerten für Linux-Knotenpools finden Sie unter Anpassen der Einstellungen für die Knotenhärtung.

Betriebssystemkonfiguration

Erstellen Sie eine Datei linuxosconfig.json mit folgendem Inhalt:

{
 "transparentHugePageEnabled": "madvise",
 "transparentHugePageDefrag": "defer+madvise",
 "swapFileSizeMB": 1500,
 "sysctls": {
  "netCoreSomaxconn": 163849,
  "netIpv4TcpTwReuse": true,
  "netIpv4IpLocalPortRange": "32000 60000"
 }
}

Erstellen eines AKS-Clusters mithilfe von benutzerdefinierten Konfigurationsdateien

Hinweis

Beachten Sie bei der Verwendung von benutzerdefinierten Konfigurationsdateien beim Erstellen eines neuen AKS-Clusters die folgenden Informationen:

  • Wenn Sie beim Erstellen eines Clusters eine Konfiguration angeben, gilt die Konfiguration nur für die Knoten im anfänglichen Knotenpool. Der Cluster behält Standardwerte für alle Einstellungen bei, die in der JSON-Datei nicht konfiguriert sind.
  • CustomLinuxOsConfig wird für den Windows-Betriebssystemtyp nicht unterstützt.
  • Die Einstellungen für die Vorschau kubeReserved - und Auslagerungsschwelle für Kubelet werden nur für Linux-Knotenpools unterstützt und erfordern das CustomNodeConfigPreview Feature-Flag. Die Registrierungsschritte finden Sie unter Node Hardening (Vorschau) in AKS.

Erstellen Sie einen neuen Cluster mit benutzerdefinierten Konfigurationsdateien, indem Sie den Befehl az aks create ausführen und Ihre Konfigurationsdateien für die Parameter --linux-os-config und --kubelet-config angeben. Mit dem folgenden Beispielbefehl wird ein neuer Cluster mit den benutzerdefinierten Dateien ./linuxkubeletconfig.json und ./linuxosconfig.json erstellt:

az aks create --name <cluster-name> --resource-group <resource-group-name> --kubelet-config ./linuxkubeletconfig.json --linux-os-config ./linuxosconfig.json

Hinzufügen eines Knotenpools mithilfe von benutzerdefinierten Konfigurationsdateien

Hinweis

Beachten Sie die folgenden Informationen, wenn Sie benutzerdefinierte Konfigurationsdateien verwenden, um einem vorhandenen AKS-Cluster einen neuen Knotenpool hinzuzufügen:

  • Wenn Sie einem vorhandenen Cluster einen Linux-Knotenpool hinzufügen, können Sie die Kubelet-Konfiguration, die Betriebssystemkonfiguration oder beide angeben. Wenn Sie einem vorhandenen Cluster einen Windows-Knotenpool hinzufügen, können Sie die Kubelet-Konfiguration angeben. Wenn Sie beim Hinzufügen eines Knotenpools eine Konfiguration angeben, gilt die Konfiguration nur für die Knoten im neuen Knotenpool. Der Knotenpool behält Standardwerte für alle Einstellungen bei, die in der JSON-Datei nicht konfiguriert sind.
  • CustomKubeletConfig wird für Linux- und Windows-Knotenpools unterstützt.
  • Die Einstellungen für die Vorschau kubeReserved und den Eviction-Schwellenwert für Kubelet werden nur für Linux-Knotenpools unterstützt und erfordern das CustomNodeConfigPreview-Feature-Flag. Die Registrierungsschritte finden Sie unter Node Hardening (Vorschau) in AKS.

Erstellen Sie einen neuen Linux-Knotenpool mit dem Befehl az aks nodepool add und geben Sie Ihre Konfigurationsdateien für die Parameter --kubelet-config und --linux-os-config an. Der folgende Beispielbefehl erstellt einen neuen Linux-Knotenpool mit der benutzerdefinierten ./linuxkubeletconfig.json Datei:

az aks nodepool add --name <node-pool-name> --cluster-name <cluster-name> --resource-group <resource-group-name> --kubelet-config ./linuxkubeletconfig.json

Bestätigen, dass Einstellungen angewendet wurden

Nachdem Sie eine benutzerdefinierte Knotenkonfiguration angewendet haben, können Sie bestätigen, dass die Einstellungen auf die Knoten angewendet wurden, indem Sie mit dem Host verbinden und überprüfen, ob Konfigurationsänderungen im Dateisystem vorgenommen wurden.

Überprüfen unterstützter benutzerdefinierter Konfigurationsparameter

Eine vollständige Liste der unterstützten Kubelet- und Linux-Betriebssystemkonfigurationsparameter, zulässige Werte, Standardwerte und Beschreibungen finden Sie unter Benutzerdefinierte Knotenkonfigurationsparameter für AKS.

Überlegungen zu benutzerdefinierten Knotenkonfigurationen

Beachten Sie beim Anpassen der Knotenkonfiguration die folgenden Überlegungen:

  • Upgrades von Knotenimages wenden benutzerdefinierte Knotenkonfigurationen erneut an.
  • Scale-out-Vorgänge bewahren benutzerdefinierte Knotenkonfigurationen.
  • AKS führt keine Vorab-Flight-Überprüfung für jeden benutzerdefinierten Knotenkonfigurationsparameter oder -wert durch. Stellen Sie sicher, dass die von Ihnen angegebenen benutzerdefinierten Knotenkonfigurationsparameter und -werte unterstützt und gültig sind, um potenzielle Probleme mit Ihren Clusterknoten zu vermeiden.
  • Die Kubelet-Einstellungen für die Vorschau kubeReserved und die Eviction-Schwellenwerte sind nur für Linux-Knotenpools verfügbar. Wenn Sie sie konfigurieren, verwenden Sie die unterstützten Bereiche, Einheiten und Kopplungsregeln in der Referenz zu benutzerdefinierten Knotenkonfigurationsparametern.
  • Standardwerte für benutzerdefinierte Knotenkonfigurationsparameter ändern sich häufig mit neuen Betriebssystemversionen. Überprüfen Sie beim Anwenden von benutzerdefinierten Knotenkonfigurationen die Standardwerte für die Parameter, die Sie konfigurieren, um sicherzustellen, dass Ihre benutzerdefinierten Einstellungen für die Betriebssystemversion Ihrer Clusterknoten geeignet sind.
  • Beschränken Sie die Anzahl der Personen, die über Berechtigungen zum Ändern der benutzerdefinierten Knotenkonfiguration verfügen, um unbeabsichtigte Auswirkungen auf Clusterstabilität und Leistung zu verhindern. Erwägen Sie die Verwendung der Microsoft Entra ID-Autorisierung für die Kubernetes-API , um den Zugriff auf Clusterkonfigurationseinstellungen einzuschränken.
  • Trennen Sie Knotenpools mit benutzerdefinierten Konfigurationen von denen ohne benutzerdefinierte Konfigurationen, um unbeabsichtigte Folgen für Workloads zu verhindern, die für bestimmte Konfigurationsänderungen anfällig sind. Wenn Sie z. B. über eine kritische Workload verfügen, die bestimmte Kubelet-Einstellungen erfordert, sollten Sie diese Workload in einen dedizierten Knotenpool mit der erforderlichen benutzerdefinierten Kubelet-Konfiguration isolieren.