Kostnadsstyrning med Kubecost

Kostnadsstyrning är den kontinuerliga processen för att implementera principer för att kontrollera kostnaderna. I Kubernetes-kontexten finns det flera sätt för organisationer att styra och optimera kostnader. Dessa inkluderar inbyggda Kubernetes-verktyg för att hantera och styra resursanvändning och förbrukning och proaktivt övervaka och optimera den underliggande infrastrukturen.

Det här avsnittet visar hur du använder Kubecost för att styra aks-klusterkostnader (Azure Kubernetes Service). Du kan omfångsbegränsa kostnadsallokering till en distribution, tjänst, etikett, podd eller namnrymd, vilket ger flexibilitet när det gäller att debitera tillbaka eller visa klusteranvändare.

Installera Kubecost

Det finns flera installationsalternativ för Kubecost. Mer information finns i Installera Kubecost.

Den rekommenderade installationsmetoden är Helm 3-diagrammet. Om du vill installera en grundläggande konfiguration av Kubecost med hjälp av Helm 3 använder du följande kommandon:

helm repo add kubecost https://kubecost.github.io/cost-analyzer/
helm repo update
helm upgrade --install kubecost kubecost/cost-analyzer --namespace kubecost --create-namespace

Efter några minuter kontrollerar du att Kubecost är igång:

kubectl get pods -n kubecost

# Connect to the Kubecost dashboard UI

kubectl port-forward -n kubecost svc/kubecost-cost-analyzer 9090:9090

Nu kan du öppna webbläsaren och peka på för att http://127.0.0.1:9090 öppna Kubecost-användargränssnittet. I Kubecost-användargränssnittet väljer du ditt kluster för att visa information om kostnadsallokering.

Konfigurera Kubecost för Azure-molnintegrering

För att slutföra kubecost-installationen bör du konfigurera Azure Cloud Integration och Azure Rate Card Configuration.

Med Microsoft Cost Export kan du skapa en återkommande uppgift som automatiskt exporterar dina Cost Management-data till ett Azure-lagringskonto dagligen. Kubecost har konfigurerats för att komma åt data i det här lagringskontot, så att den kan visa den totala kostnaden för Azure-resurser på instrumentpanelen, inte bara de data som kommer från AKS-klustret. För att säkerställa att Kubecost genererar korrekta instrumentpaneler bör du tagga dina Azure-resurser enligt beskrivningen i Kubecost-dokumentationen för taggning av Azure-resurser. Vissa Azure-resurser skapas av AKS-klustret, så är fallet när du skapar en tjänst av typen LoadBalancer eller en PersistentVolume. Om du vill spåra kostnaden för dessa resurser korrekt kan du använda anteckningar i Kubernetes-resurserna för att lägga till rätt Azure-taggar, som exempel i artikeln "Använda Azure-taggar i Azure Kubernetes Service".

Azure-priskortkonfigurationen är nödvändig för att korrekta priser ska kunna rapporteras på instrumentpanelen. Du måste skapa ett huvudnamn för tjänsten med en anpassad roll enligt beskrivningen på dokumentationssidan och konfigurera Kubecost att använda tjänstens huvudnamn för att köra frågor mot API:et för Azure-faktureringskort.

Kubecost delar upp resurser i följande kategorier:

  • Månadskostnad för kluster
  • Namnområdeskostnad
  • Distributionsresurskostnad
  • Kostnadseffektivitet

Välj klustret för att se en översikt som på följande instrumentpanel:

Skärmbild som visar Kubecost-instrumentpanelen.

Välj Allokering till vänster för att gräva ned i namnområdeskostnaden för dina resurser. Allokering visar kostnaden för CPU, minne, beständiga volymer och nätverk. Kubecost hämtar data från Azure-priser, men du kan också ange anpassade kostnader för resurserna.

Skärmbild som visar skärmen Kubecost-allokering.

Välj Besparingar till vänster för att gräva i kostnadsbesparingar för underutnyttjerade resurser. Besparingar ger dig information om underutnytttagna noder och poddar och övergivna resurser och identifierar överetablerade resursbegäranden i klustret. Följande skärmbild visar ett exempel på en översikt över besparingar :

Skärmbild som visar kubecost-sparskärmen.

Ta dig tid att navigera runt i de olika vyer och funktioner som Kubecost tillhandahåller.