Hinweis:
- Dieses Tutorial erfordert Zugriff auf Oracle Cloud. Informationen zur Registrierung für einen kostenlosen Account finden Sie unter Erste Schritte mit Oracle Cloud Infrastructure Free Tier.
- Es verwendet Beispielwerte für Oracle Cloud Infrastructure-Zugangsdaten, -Mandanten und -Compartments. Ersetzen Sie diese Werte nach Abschluss der Übung durch Werte, die für Ihre Cloud-Umgebung spezifisch sind.
Mehrmandantenfähige SaaS-Kosten auf OCI Kubernetes Engine mit OpenCost verwalten
Einführung
Unabhängige Softwareanbieter (ISVs), die mehrmandantenfähige Software-as-a-Service-(SaaS-)Lösungen auf Oracle Cloud Infrastructure (OCI) bereitstellen, stehen oft vor der Herausforderung, die Kosten effizient zu verwalten und gleichzeitig eine genaue Abrechnung für jeden Mandanten sicherzustellen. Ein gängiger Ansatz bei SaaS-Providern ist die Ausführung der Mandanten-Workloads auf Kubernetes. Dabei werden Kubernetes-Namespaces verwendet, um sie logisch innerhalb desselben Clusters zu trennen. Beim Deployment von Clustern auf der Oracle Cloud Infrastructure Kubernetes Engine (OCI Kubernetes Engine oder OKE) stellt OCI detaillierte Kostendaten für das gesamte Cluster bereit. Es ist jedoch nicht in der Lage, detaillierte Kosteneinblicke für einzelne Kubernetes-Komponenten wie Namespaces bereitzustellen, die für die Verfolgung und Abrechnung der mandantenspezifischen Ressourcennutzung von entscheidender Bedeutung sind.
In diesem Tutorial führen wir Sie durch eine einfach bereitzustellende Lösung mit OpenCost, einem Open-Source-Tool zur Kostenüberwachung, mit dem Sie Kosten in einer mehrmandantenfähigen Umgebung auf OKE verfolgen und verwalten können.
Als ISV führen Sie wahrscheinlich SaaS-Anwendungen aus, bei denen mehrere Mandanten die Infrastruktur in einem OKE-Cluster gemeinsam nutzen. Die Herausforderung besteht darin, einen Einblick in die Kosten zu erhalten, die mit dem Ressourcenverbrauch jedes Mandanten verbunden sind. Das Verständnis dieser Kosten ist für die genaue Umlage von Aufwendungen und die Gewährleistung einer fairen Abrechnung für jeden Mieter unerlässlich.
Wenn Sie keinen Einblick in die Ressourcennutzung pro Mandant haben, ist es schwierig:
- Stellen Sie Mandanten genau für die Kubernetes-Ressourcennutzung in Rechnung.
- Optimieren Sie Ressourcen, um ein übermäßiges Provisioning zu vermeiden.
- Kontrollieren Sie die Kosten, und stellen Sie die Rentabilität Ihres SaaS-Geschäfts sicher.
OpenCost ist ein Open-Source-Tool zur Kostenüberwachung und -verwaltung, das speziell für Kubernetes-Umgebungen entwickelt wurde. Es verfolgt die Ressourcennutzung Ihrer OKE-Cluster und weist die Kosten für CPU, Speicher, Speicher und Networking zu. Mit OpenCost können Sie diese Kosten auf einfache Weise Ihren Mandanten basierend auf Kubernetes-Namespaces zuordnen. Dadurch ist es eine ideale Lösung für ISVs mit mehrmandantenfähigen SaaS-Anwendungen.
Mit OpenCost können Sie:
- Teilen Sie Kosten nach Namespace (oder anderen Kubernetes-Komponenten) zu, um die individuelle Mandantennutzung zu verfolgen.
- Verfolgen und analysieren Sie den Ressourcenverbrauch pro Mandant über einen bestimmten Zeitraum.
- Optimieren Sie Mandantenumgebungen, um eine effiziente Ressourcennutzung sicherzustellen.
Ziele
- Verwalten Sie SaaS-Kosten für mehrere Mandanten in OKE mit OpenCost.
Voraussetzungen
-
Ein aktives OKE-Cluster in OCI.
-
kubectl wurde installiert und für den Zugriff auf das OKE-Cluster konfiguriert.
-
Helm zur Verwaltung Ihrer Kubernetes-Packages installiert.
-
Installieren Sie Prometheus. Führen Sie den folgenden Befehl aus.
helm install prometheus --repo https://prometheus-community.github.io/helm-charts prometheus \ --namespace prometheus-system --create-namespace \ --set prometheus-pushgateway.enabled=false \ --set alertmanager.enabled=false \ -f https://raw.githubusercontent.com/opencost/opencost/develop/kubernetes/prometheus/extraScrapeConfigs.yaml
OpenCost auf Ihrem OKE-Cluster installieren
-
Erstellen Sie den OpenCost-Namespace für die Installation.
kubectl create namespace opencost
OpenCost erkennt OCI automatisch als Cloud-Serviceprovider (CSP), indem Knoteninformationen aus
node.spec.providerID
gelesen werden. Wenn OCI als CSP erkannt wird, versucht OpenCost, Preisdaten aus der OCI-Preislisten-API abzurufen. Zum Abrufen der öffentlichen Preisfindungsdaten ist kein API-Schlüssel erforderlich. -
Installieren Sie OpenCost im Namespace OpenCost.
helm install opencost --repo https://opencost.github.io/opencost-helm-chart opencost --namespace opencost
-
Aktualisieren Sie OpenCost.
helm upgrade opencost --repo https://opencost.github.io/opencost-helm-chart opencost --namespace opencost
-
Aktualisieren Sie den Service so, dass dem OCI Load Balancer eine externe IP-Adresse zugewiesen wird.
kubectl patch svc opencost -n opencost -p '{"spec": {"type": "LoadBalancer"}}'
Um öffentlich auf OpenCost zuzugreifen, müssen wir eine Netzwerksicherheitsgruppe (NSG) erstellen, eine Ingress-Regel konfigurieren, um den erforderlichen Port zu öffnen, und ihn mit dem OCI Load Balancer verknüpfen.
-
Erstellen Sie die Netzwerksicherheitsgruppe (NSG). Ersetzen Sie
YOUR_COMPARTMENT_ID
durch die tatsächliche Compartment-ID undYOUR_VCN_ID
durch die VCN-ID. Sie können diese Informationen über die OCI-Konsole abrufen.oci network nsg create --compartment-id [YOUR_COMPARTMENT_ID] --vcn-id [YOUR_VCN_ID] --display-name opencost_nsg
-
Erstellen Sie eine Ingress-Regel, die TCP-Traffic über das Internet an Port
9090
zulässt. Sie können die Dateiopencost-nsg-rule.json
hier herunterladen: opencost-nsg-rule.json.oci network nsg rules add --nsg-id [YOUR_NSG_ID] --from-json file://opencost-nsg-rule.json
-
Hängen Sie die neu erstellte Netzwerksicherheitsgruppe (NSG) an den OCI Load Balancer an. Ersetzen Sie
YOUR_LB_ID
durch die Load Balancer-ID undYOUR_NSG_ID
durch die Netzwerksicherheitsgruppen-ID.oci lb nsg update --load-balancer-id [YOUR_LB_ID] --nsg-ids '[ "[YOUR_NSG_ID]" ]'
-
Rufen Sie die externe IP-Adresse ab, und greifen Sie damit über Ihren Webbrowser auf OpenCost zu. Führen Sie den Befehl
kubectl get svc -n opencost
aus.Informationen zur Benutzeroberfläche von OpenCost finden Sie unter Video: Erfahren Sie, wie OpenCost Ihre Kubernetes-Kosten und Cloud-Abrechnung verfolgt.
Herzlichen Glückwunsch. Sie haben OpenCost erfolgreich in Ihrem OKE-Cluster installiert und konfiguriert.
Nächste Schritte
Durch die Integration von OpenCost in Ihr OKE-Cluster und die Konfiguration benutzerdefinierter Preise erhalten Sie einen präzisen Einblick in Ihre mehrmandantenfähigen SaaS-Kosten. ISVs können jetzt Kosten fair und genau umlegen, um sicherzustellen, dass die Ressourcennutzung jedes Mandanten in der endgültigen Rechnung berücksichtigt wird.
Mit dem benutzerdefinierten Preisfindungsfeature von OpenCost stellen Sie sicher, dass die Kostenschätzungen mit den Preisen von OCI übereinstimmen, was für die Aufrechterhaltung der Rentabilität in einer mehrmandantenfähigen SaaS-Umgebung von entscheidender Bedeutung ist.
Verwandte Links
Danksagungen
- Autor - JP Santana, Master Cloud Architect
Weitere Lernressourcen
Sehen Sie sich andere Übungen zu docs.oracle.com/learn an, oder greifen Sie im Oracle Learning YouTube-Channel auf weitere kostenlose Lerninhalte zu. Besuchen Sie außerdem education.oracle.com/learning-explorer, um Oracle Learning Explorer zu werden.
Die Produktdokumentation finden Sie im Oracle Help Center.
Manage Multi-Tenant SaaS Costs on OCI Kubernetes Engine with OpenCost
G17285-01
October 2024