Kostengovernance mit Kubecost
Die Kostengovernance ist der fortlaufende Prozess, Richtlinien für die Kostenkontrolle zu implementieren. Im Kubernetes-Kontext gibt es verschiedene Möglichkeiten, um die Kosten zu kontrollieren und zu optimieren. Dazu zählen native Kubernetes-Tools für die Verwaltung und Governance der Ressourcenauslastung und des Ressourcenverbrauchs und für die proaktive Überwachung und Optimierung der zugrunde liegenden Infrastruktur.
In diesem Abschnitt wird veranschaulicht, wie Sie Kubecost für die Governance der Clusterkosten von Azure Kubernetes Service (AKS) einsetzen. Sie können die Kostenzuteilung auf eine Bereitstellung, einen Dienst, eine Bezeichnung, einen Pod oder einen Namespace beschränken. Dadurch können Sie Kosten flexibel rückverrechnen oder Clusterbenutzer anzeigen.
Installieren von Kubecost
Für Kubecost gibt es mehrere Installationsoptionen. Weitere Informationen finden Sie unter Installieren von Kubecost.
Die empfohlene Installationsmethode ist das Helm 3-Diagramm. Verwenden Sie die folgenden Befehle, um eine Standardkonfiguration von Kubecost mithilfe von Helm 3 zu installieren:
helm repo add kubecost https://kubecost.github.io/cost-analyzer/
helm repo update
helm upgrade --install kubecost kubecost/cost-analyzer --namespace kubecost --create-namespace
Überprüfen Sie nach einigen Minuten, ob Kubecost ordnungsgemäß ausgeführt wird:
kubectl get pods -n kubecost
# Connect to the Kubecost dashboard UI
kubectl port-forward -n kubecost svc/kubecost-cost-analyzer 9090:9090
Öffnen Sie http://127.0.0.1:9090
in Ihrem Browser, um zur Benutzeroberfläche für Kubecost zu gelangen. Wählen Sie auf der Kubecost-Benutzeroberfläche Ihren Cluster aus, um Informationen zur Kostenzuteilung anzuzeigen.
Konfigurieren von Kubecost für die Azure-Cloudintegration
Um Ihre Kubecost-Installation abzuschließen, sollten Sie die Azure-Cloudintegration und die Azure Rate Card-Konfiguration konfigurieren.
Mit Microsoft Cost Export können Sie eine wiederkehrende Aufgabe erstellen, die Ihre Kostenmanagementdaten täglich automatisch in ein Azure-Speicherkonto exportiert. Kubecost ist für den Zugriff auf die Daten in diesem Speicherkonto konfiguriert, sodass die Gesamtkosten für Azure-Ressourcen im Dashboard angezeigt werden können, nicht nur die Daten, die aus dem AKS-Cluster stammen. Um sicherzustellen, dass Kubecost genaue Dashboards erstellt, sollten Sie Ihre Azure-Ressourcen wie in der Kubecost-Dokumentation zum Markieren von Azure-Ressourcen beschrieben markieren. Einige Azure-Ressourcen werden vom AKS-Cluster erstellt. Dies ist der Fall, wenn Sie einen Dienst vom Typ LoadBalancer
oder ein PersistentVolume
erstellen. Um die Kosten für diese Ressourcen ordnungsgemäß nachzuverfolgen, können Sie Anmerkungen in den Kubernetes-Ressourcen verwenden, um die richtigen Azure-Tags hinzuzufügen, wie anhand von Beispielen im Artikel zum Verwenden von Azure-Tags in Azure Kubernetes Service gezeigt.
Die Azure Rate Card-Konfiguration ist erforderlich, damit genaue Preise in Ihrem Dashboard gemeldet werden. Sie müssen einen Dienstprinzipal mit einer benutzerdefinierten Rolle erstellen, wie auf der Dokumentationsseite erläutert, und Kubecost so konfigurieren, dass der Dienstprinzipal zum Abfragen der Azure Billing Rate Card-API verwendet wird.
Navigation in Kubecost
Kubecost teilt Ressourcen in die folgenden Kategorien ein:
- Monthly cluster cost (Monatliche Clusterkosten)
- Namespace cost (Namespacekosten)
- Deployment resource cost (Kosten für Bereitstellungsressourcen)
- Kosteneffizienz
Wählen Sie Ihren Cluster aus, um eine Übersicht wie das folgende Dashboard anzuzeigen:
Wählen Sie auf der linken Seite Allocation (Zuteilung) aus, um die Namespacekosten für Ihre Ressourcen näher zu untersuchen. Unter Allocation werden die Kosten für CPU, Arbeitsspeicher, persistente Volumes und Netzwerke angezeigt. Kubecost ruft Preisdaten aus Azure ab, Sie können jedoch auch benutzerdefinierte Kosten für Ihre Ressourcen festlegen.
Wählen Sie auf der linken Seite Savings (Einsparungen) aus, um die Kosteneinsparungen für nicht ausgelastete Ressourcen näher zu untersuchen. Unter Savings werden Information zu nicht ausgelasteten Knoten und Pods und verwaisten Ressourcen angezeigt. Darüber hinaus werden überdimensionierte Ressourcenanforderungen im Cluster ermittelt. Der folgende Screenshot zeigt eine Beispielübersicht in Savings:
Nehmen Sie sich etwas Zeit, um sich mit den Ansichten und Features von Kubecost vertraut zu machen.