Bekannte Probleme mit der AKS-Engine auf Azure Stack Hub
In diesem Artikel werden bekannte Probleme mit der AKS-Engine in Azure Stack Hub beschrieben.
Das abgelaufene Geheimnis für den Dienstprinzipal (SPN) führt zu einem Fehler des Clusters.
Gilt für: Dieses Problem gilt für alle Releases.
Beschreibung: Wenn das Geheimnis für den SPN abläuft, schlägt der Cluster fehl. Dies wirkt sich auf alle Kubernetes-Cluster aus, die mithilfe der AKS-Engine bereitgestellt wurden. Wenn Ihr Geheimnis abläuft, ist Ihr Cluster nicht funktionsfähig.
Problemlösung: Melden Sie sich zum Beheben des Problems bei jedem Kubernetes-Knoten an, um die Konfigurationsdatei
/etc/kubernetes/azure.json
mit einer neuen SPN-Anwendungs-ID und einem nicht abgelaufenen Geheimnis zu aktualisieren. Möglicherweise müssen Sie sich an Ihren Azure Stack Hub-Cloudoperator wenden, um einen SPN und ein aktuelles Geheimnis zu erhalten. Anweisungen finden Sie unter Verwenden einer App-Identität für den Ressourcenzugriff.Sie können die folgenden Befehle für Ihre Linux-Knoten verwenden:
sudo sed -i s/f072c125-c99c-4781-9e85-246b981cd52b/094b1318-baea-4584-bf9c-4a40501ce21b/1 /etc/kubernetes/azure.json
Starten Sie den
kubelet
-Dienst mit dem folgenden Befehl neu:sudo systemctl reboot node
Sie können auch den SPN und das Geheimnis mit dem API-Modell verwenden und ein Upgrade erzwingen. Anweisungen dazu finden Sie unter Erzwingen eines Upgrades.
Häufigkeit: Allgemein
Abgelaufene Zertifikate für den Front-Proxy
- Gilt für: Dieses Problem gilt für alle Releases.
-
Beschreibung: Wenn Ihr Zertifikat abläuft,
kubectl top
funktioniert der Metrikserver möglicherweise nicht mehr. - Problemlösung: Sie müssen Ihr Zertifikat verlängern. Die entsprechenden Schritte sind unter Rotieren von Kubernetes-Zertifikaten auf Azure Stack Hub erläutert.
- Häufigkeit: Allgemein
Begrenzung auf 50 Knoten pro Abonnement
- Geltungsbereich: Azure Stack Hub, AKS-Engine (alle)
- Beschreibung: Beim Erstellen von Clustern müssen Sie sicherstellen, dass pro Abonnement nicht mehr als 50 Kubernetes-Knoten (Steuerungsebene und Agentknoten) bereitgestellt werden. Die Gesamtzahl der Kubernetes-Knoten, die in allen Clustern innerhalb eines einzelnen Abonnements bereitgestellt werden, sollte nicht mehr als 50 Knoten betragen.
- Behebung: Verwenden Sie weniger als 51 Knoten in Ihrem Abonnement.
- Auftreten: Beim Versuch, mehr als 50 Knoten pro Abonnement hinzuzufügen.
Die Größe von Cluster-VMs kann mit dem Computedienst nicht geändert werden
- Geltungsbereich: Azure Stack Hub, AKS-Engine (alle)
-
Beschreibung: Das Ändern der Größe von Cluster-VMs über den Compute-Dienst funktioniert nicht mit der AKS-Engine. Die AKS-Engine verwaltet den Status des Clusters in der JSON-Datei des API-Modells. Um sicherzustellen, dass die gewünschte VM-Größe in jedem Erstellungs-, Upgrade- oder Skalierungsvorgang mit der AKS-Engine widerspiegelt, aktualisieren Sie das API-Modell, bevor Sie einen dieser Vorgänge ausführen. Wenn Sie beispielsweise eine VM-Größe in einem bereits bereitgestellten Cluster mithilfe des Computediensts in eine andere Größe ändern, geht der Zustand bei
aks-engine upgrade
der Ausführung verloren. -
Behebung: Damit dies funktioniert, suchen Sie nach dem API-Modell für den Cluster, ändern Sie die Größe dort, und führen Sie dann aus
aks-engine upgrade
. - Häufigkeit: Bei dem Versuch, die Größe mit dem Computedienst zu ändern.
Fehler beim Trennen des Datenträgers in der AKS-Engine 0.55.0
- Geltungsbereich: Azure Stack Hub (Update 2005), AKS-Engine 0.55.0
- Beschreibung: Wenn Sie versuchen, eine Bereitstellung zu löschen, die persistente Volumes enthält, löst der Löschvorgang eine Reihe von Fehlern beim Anfügen/Trennen aus. Dieses Problem ist auf einen Fehler im Cloudanbieter der AKS-Engine v0.55.0 zurückzuführen. Der Cloudanbieter ruft die Azure-Resource Manager mit einer Version der API auf, die neuer ist als die Version, die Azure Resource Manager in Azure Stack Hub (Update 2005) derzeit unterstützt.
- Behebung: Ausführliche Informationen und Schritte zur Entschärfung finden Sie im GitHub-Repository der AKS-Engine (Problem 3817). Führen Sie ein Upgrade aus, sobald ein neuer Build der AKS-Engine und des entsprechenden Images verfügbar sind.
- Vorkommen: Beim Löschen einer Bereitstellung, die persistente Volumes enthält.
Upgradeprobleme in AKS Engine 0.51.0
Während des Upgrades der AKS-Engine eines Kubernetes-Clusters von Version 1.15.x auf 1.16.x erfordert das Upgrade der folgenden Kubernetes-Komponenten zusätzliche manuelle Schritte: kube-proxy, azure-cni-networkmonitor, csi-secrets-store, kubernetes-Dashboard. In den folgenden Informationen wird beschrieben, was Sie möglicherweise sehen und wie Sie die Probleme umgehen können.
In verbundenen Umgebungen ist dieses Problem nicht offensichtlich, da es im Cluster keine Anzeichen gibt, dass die betroffenen Komponenten nicht aktualisiert wurden. Alles funktioniert scheinbar wie erwartet.
kubectl get pods -n kube-system
Führen Sie den Befehl in der Spalte Problemumgehung in der folgenden Tabelle aus, um dieses Problem für jede dieser Komponenten zu beheben.
Komponentenname Problemumgehung Betroffene Szenarien kube-proxy kubectl delete ds kube-proxy -n kube-system
Verbunden, nicht verbunden azure-cni-networkmonitor kubectl delete ds azure-cni-networkmonitor -n kube-system
Verbunden, nicht verbunden csi-secrets-store sudo sed -i s/Always/IfNotPresent/g /etc/kubernetes/addons/secrets-store-csi-driver.yaml
kubectl delete ds csi-secrets-store -n kube-system
Getrennt kubernetes-dashboard Führen Sie den folgenden Befehl für jeden Steuerungsebenenknoten aus: sudo sed -i s/Always/IfNotPresent/g /etc/kubernetes/addons/kubernetes-dashboard.yaml
Getrennt
Kubernetes 1.17 wird in diesem Release nicht unterstützt. Obwohl es GitHub-Pullanforderungen (PR) gibt, die sich auf die Version 1.17 beziehen, wird diese nicht unterstützt.
Clusterknoten wechselt zu "Not Ready" status und k8s-kern.log
enthält die Meldung "Speichergruppe aus Arbeitsspeicher"
Geltungsbereich: Azure Stack Hub, AKS-Engine (alle)
Beschreibung: Ein Clusterknoten wird zu "Not Ready" status verschoben, und die Datei k8s-kern.log enthält die Meldung
Memory cgroup out of memory
. Dieses Problem gilt für alle Versionen der AKS-Engine. Um zu überprüfen, ob dieses Problem auf Ihrem System auftritt, durchsuchen Sie die Datei k8s-kern.log nach der Zeichenfolge "Memory cgroup out of memory".Sie finden die Datei k8s-kern.log wie folgt:
- Ausführen
aks-engine get-logs
und Navigieren zu ${NODE_NAME}/var/log/k8s-kern.log, OR - Navigieren zu /var/log/kern.log im Knotendateisystem.
- Ausführen
Behebung: Erhöhen Sie für Knoten auf Steuerungsebene die Größe der master Profil-VM. Erhöhen Sie für Agentknoten die VM-Größe des Knotenpools, oder skalieren Sie den Knotenpool hoch. Führen Sie zum Hochskalieren des Knotenpools den dokumentierten Befehl aus
scale
, und befolgen Sie die Anweisungen.Um die Größe einer Pool-VM zu erhöhen, aktualisieren Sie das API-Modell, und führen Sie aus
aks-engine upgrade
. Alle virtuellen Computer werden gelöscht und mit der neuen VM-Größe neu erstellt.Vorkommen: Wenn der vom Clusterknoten benötigte/verbrauchte Arbeitsspeicher den verfügbaren Arbeitsspeicher überschreitet.