Hinweis:

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:

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:

Ziele

Voraussetzungen

OpenCost auf Ihrem OKE-Cluster installieren

  1. 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.

  2. Installieren Sie OpenCost im Namespace OpenCost.

    helm install opencost --repo https://opencost.github.io/opencost-helm-chart opencost --namespace opencost
    
  3. Aktualisieren Sie OpenCost.

    helm upgrade opencost --repo https://opencost.github.io/opencost-helm-chart opencost --namespace opencost
    
  4. 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.

  5. Erstellen Sie die Netzwerksicherheitsgruppe (NSG). Ersetzen Sie YOUR_COMPARTMENT_ID durch die tatsächliche Compartment-ID und YOUR_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
    
  6. Erstellen Sie eine Ingress-Regel, die TCP-Traffic über das Internet an Port 9090 zulässt. Sie können die Datei opencost-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
    
  7. Hängen Sie die neu erstellte Netzwerksicherheitsgruppe (NSG) an den OCI Load Balancer an. Ersetzen Sie YOUR_LB_ID durch die Load Balancer-ID und YOUR_NSG_ID durch die Netzwerksicherheitsgruppen-ID.

    oci lb nsg update --load-balancer-id [YOUR_LB_ID] --nsg-ids '[ "[YOUR_NSG_ID]" ]'
    

    NSG an Load Balancer anhängen

  8. 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.

    OpenCost im Browser geöffnet

    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.

Danksagungen

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.