Azure Kubernetes Service Kostenanalyse

Ein Azure Kubernetes Service (AKS)-Cluster ist auf Azure-Ressourcen wie virtuelle Computer, virtuelle Datenträger, Lastenausgleichsgeräte und öffentliche IP-Adressen angewiesen. Mehrere Anwendungen können diese Ressourcen verwenden, die möglicherweise von verschiedenen Teams innerhalb Ihrer Organisation verwaltet werden. Ressourcenverbrauchsmuster für diese Anwendungen sind häufig variabel, sodass ihr Beitrag zu den gesamten Clusterressourcenkosten ebenfalls variieren kann. Einige Anwendungen können auch Speicherbedarf in mehreren Clustern aufweisen, was eine Herausforderung darstellen kann, wenn Kostenzuordnungen und Kostenmanagement durchgeführt werden.

Zuvor hat Microsoft Cost Management (MCM) den zusammengefassten Clusterressourcenverbrauch unter der Clusterressourcengruppe zusammengefasst. Sie könnten MCM verwenden, um Kosten zu analysieren, aber es gab mehrere Herausforderungen:

  • Es gab keine Azure-native Funktion zum Anzeigen der Clusterressourcennutzung auf einer Ebene, die präziser als ein Cluster ist. Es gab keine Aufschlüsselung in diskrete Kategorien wie Compute (einschließlich CPU-Kerne und Arbeitsspeicher), Speicher und Netzwerk.

  • Es gab keine systemeigene Azure-Funktion, um zwischen Kostentypen zu unterscheiden, z. B. zwischen einzelnen Anwendungskosten und den Gemeinkosten. MCM berichtete über die Ressourcenkosten, aber es gab keinen Einblick, wie viel der Ressourcenkosten für die Ausführung einzelner Anwendungen verwendet wurde, wie viel für Systemprozesse reserviert war, die vom Cluster benötigt werden, oder was die Leerlaufkosten waren, die mit dem Cluster in Bezug stehen.

  • Es gab keinen Azure-nativen Mechanismus, um Kosten in mehreren Clustern im selben Abonnementbereich zu analysieren.

Daher haben Sie möglicherweise Drittanbieterlösungen verwendet, um den Ressourcenverbrauch und die Kosten durch Kubernetes-spezifische Granularitätsebenen wie Namespace oder Pod zu sammeln und zu analysieren. Drittanbieterlösungen erfordern jedoch die Bereitstellung, Feinabstimmung und Wartung für jeden AKS-Cluster. In einigen Fällen müssen Sie sogar für erweiterte Funktionen bezahlen, was die Gesamtkosten des Clusters erhöht.

Um diese Herausforderung zu bewältigen, wurde AKS in MCM integriert, um detaillierte Kosten-Drilldowns für Kubernetes-Konstrukte wie Cluster und Namespace zusätzlich zu Azure Compute-, Netzwerk- und Speicherkategorien anzubieten.

Das Add-On für die AKS-Kostenanalyse basiert auf OpenCost, einem Open Source Cloud Native Computing Foundation Sandbox-Projekt zur Sammlung von Nutzungsdaten. Die Kostenanalyse wird mit Ihren Azure-Rechnungsdaten in Einklang gebracht. Nachverarbeitete Daten sind direkt im MCM Cost Analysis-Portalsichtbar.

Voraussetzungen und Einschränkungen

  • Ihr Cluster muss von der Ebene Standard oder Premium sein, nicht die Free Ebene.

  • Um Kostenanalyseinformationen anzuzeigen, müssen Sie über eine der folgenden Rollen für das Abonnement verfügen, das den Cluster hostet: Besitzer, Mitwirkender, Leser, Kostenverwaltungsmitwirkender oder Kostenverwaltungsleser.

  • Nachdem Sie die Kostenanalyse aktiviert haben, können Sie Ihr Cluster nicht auf die Ebene Free herabstufen, ohne zuerst die Kostenanalyse zu deaktivieren.

  • Ihr Cluster muss mit einer konfigurierten Microsoft Entra Workload-ID bereitgestellt werden.

  • Wenn Sie die Azure CLI verwenden, müssen Sie Version 2.44.0 oder höher installiert haben und die aks-preview Azure CLI-Erweiterungsversion 0.5.155 oder höher installiert sein.

  • Kubernetes-Kostenansichten sind nur für die folgenden Microsoft Azure-Angebotsarten verfügbar. Weitere Informationen über Angebotsarten finden Sie unter Unterstützte Microsoft Azure-Angebote.

    • Enterprise Agreement
    • Microsoft-Kundenvereinbarung
  • Virtuelle Knoten werden derzeit nicht unterstützt.

Installieren oder Aktualisieren der Azure CLI-Erweiterung aks-preview

Installieren Sie die Azure CLI-Speichererweiterung aks-preview mit dem Befehl az extension add.

az extension add --name aks-preview

Wenn Sie die Erweiterungsversion aktualisieren müssen, können Sie dazu den az extension update-Befehl verwenden.

az extension update --name aks-preview

Aktivieren der Kostenanalyse für Ihren AKS-Cluster

Sie können die Kostenanalyse mit der --enable-cost-analysis-Kennzeichnung für einen der folgenden Vorgänge aktivieren:

  • Erstellen eines AKS-Clusters der Ebene Standard oder Premium.

  • Aktualisieren Sie einen AKS-Cluster, der sich bereits auf der Ebene Standard oder Premium Ebene befindet.

  • Upgrade eines Free Clusters auf Standard oder Premium.

  • Upgrade eines Standard Clusters auf Premium.

  • Herabstufen eines Premium Clusters auf Ebene Standard.

Im folgenden Beispiel wird ein neues AKS-Cluster auf der Standard-Ebene erstellt, bei dem die Kostenanalyse aktiviert ist:

az aks create --resource-group <resource-group> --name <cluster-name> --location <location> --enable-managed-identity --generate-ssh-keys --tier standard --enable-cost-analysis

Im folgenden Beispiel wird ein vorhandenes AKS-Cluster auf der Standard-Ebene aktualisiert, um die Kostenanalyse zu ermöglichen:

az aks update --resource-group <resource-group> --name <cluster-name> --enable-cost-analysis

Warnung

Die Speicherauslastung der AKS-Kostenanalyse-Addon hängt von der Anzahl der bereitgestellten Container ab. Der Speicherverbrauch kann ungefähr auf 200 MB + 0,5 MB pro Container geschätzt werden. Die aktuelle Speichergrenze wird auf 4 GB festgelegt, was ungefähr 7000 Container pro Cluster unterstützt, abhängig von unterschiedlichen Faktoren können es aber auch mehr oder weniger sein. Diese Schätzungen können sich ändern.

Kostenanalyse deaktivieren

Sie können die Kostenanalyse jederzeit mithilfe von az aks update deaktivieren.

az aks update --name myAKSCluster --resource-group myResourceGroup --disable-cost-analysis

Hinweis

Wenn Sie beabsichtigen, den Cluster von den Ebenen Standard oder Premium auf die Free Ebene herabzustufen, während die Kostenanalyse aktiviert ist, müssen Sie zuerst die Kostenanalyse explizit deaktivieren, wie hier gezeigt.

Anzeigen der Kostendaten

Sie können Kostenzuordnungsdaten im Azure-Portal anzeigen. Weitere Informationen zum Navigieren in der Benutzeroberflächenansicht der Kostenanalyse finden Sie in der Cost Management-Dokumentation.

Kostendefinitionen

In den Kubernetes-Namespaces und -Ressourcenansichten werden die folgenden Gebühren angezeigt:

  • Leerlaufgebühren: Stellt die Kosten der verfügbaren Ressourcenkapazität dar, die nicht von Arbeitslasten verwendet werden.
  • Servicegebühren: Stellt die Gebühren dar, die dem Dienst zugeordnet sind, z. B. Uptime SLA, Microsoft Defender for Containers usw.
  • Systemgebühren: Stellt die Kosten der Kapazität dar, die von AKS auf jedem Knoten reserviert sind, um Systemprozesse auszuführen, die vom Cluster benötigt werden, einschließlich der Kubelet- und Containerlaufzeit. Weitere Informationen
  • Nicht zugewiesene Gebühren: Stellt die Kosten für Ressourcen dar, die keinen Namespaces zugeordnet werden konnten.

Hinweis

Es kann bis zu einem Tag dauern, bis Daten abgeschlossen werden. Nach 24 Stunden haben sich alle Kostenschwankungen des vorigen Tags stabilisiert.

Problembehandlung

Lesen Sie die folgende Anleitung zur Problembehandlung AKS-Kostenanalyse-Add-On-Probleme.

Weitere Informationen

Die Sichtbarkeit ist ein Element des Kostenmanagements. Unter Optimieren von Kosten in Azure Kubernetes Service (AKS) finden Sie weitere bewährte Methoden für die Kontrolle über Ihre Kubernetes-Kosten.