Remarques :

Gestion des coûts SaaS colocatifs sur OCI Kubernetes Engine avec OpenCost

Introduction

Les éditeurs de logiciels indépendants (ISV) qui fournissent des solutions Software as a Service (SaaS) colocatives sur Oracle Cloud Infrastructure (OCI) doivent souvent gérer les coûts efficacement tout en garantissant une facturation précise pour chaque locataire. Une approche courante parmi les fournisseurs SaaS consiste à exécuter les charges de travail de leurs locataires sur Kubernetes, en utilisant les espaces de noms Kubernetes pour les séparer logiquement au sein du même cluster. Lors du déploiement de clusters sur Oracle Cloud Infrastructure Kubernetes Engine (OCI Kubernetes Engine ou OKE), OCI fournit des données de coût détaillées pour le cluster global. Cependant, il n'est pas en mesure de fournir des informations détaillées sur les coûts pour les composants Kubernetes individuels, tels que les espaces de noms, qui sont cruciaux pour le suivi et la facturation de l'utilisation des ressources propres au locataire.

Dans ce tutoriel, nous vous présenterons une solution facile à déployer à l'aide de OpenCost, un outil de surveillance des coûts open source qui peut vous aider à suivre et à gérer les coûts dans un environnement colocatif sur OKE.

En tant qu'ISV, vous exécutez probablement des applications SaaS où plusieurs locataires partagent l'infrastructure au sein d'un cluster OKE. Le défi consiste à gagner en visibilité sur les coûts associés à la consommation de ressources de chaque locataire. La compréhension de ces coûts est essentielle pour répartir avec précision les dépenses et assurer une facturation équitable pour chaque locataire.

Si vous n'avez pas de visibilité sur l'utilisation des ressources par locataire, il devient difficile de :

OpenCost est un outil open source de surveillance et de gestion des coûts conçu spécifiquement pour les environnements Kubernetes. Il assure le suivi de l'utilisation des ressources de vos clusters OKE et alloue les coûts de CPU, de mémoire, de stockage et de mise en réseau. OpenCost vous permet de mettre facilement en correspondance ces coûts avec vos locataires en fonction des espaces de noms Kubernetes, ce qui en fait une solution idéale pour les ISV avec des applications SaaS colocatives.

Avec OpenCost, vous pouvez :

Objectifs

Prérequis

Installation de OpenCost sur le cluster OKE

  1. Créez l'espace de noms OpenCost pour votre installation.

    kubectl create namespace opencost
    

    OpenCost détecte automatiquement OCI en tant que fournisseur de services cloud en lisant les informations de noeud à partir de node.spec.providerID. Lorsqu'OCI est détecté en tant que fournisseur de services cloud, OpenCost tente d'extraire les données de tarification à partir de l'API des tarifs OCI. Aucune clé d'API n'est requise pour extraire les données de tarification publique.

  2. Installez OpenCost dans l'espace de noms OpenCost.

    helm install opencost --repo https://opencost.github.io/opencost-helm-chart opencost --namespace opencost
    
  3. Mettez à jour OpenCost.

    helm upgrade opencost --repo https://opencost.github.io/opencost-helm-chart opencost --namespace opencost
    
  4. Mettez à jour le service de sorte qu'une adresse IP externe soit affectée à l'équilibreur de charge OCI.

    kubectl patch svc opencost -n opencost -p '{"spec": {"type": "LoadBalancer"}}'
    

    Pour accéder à OpenCost publiquement, nous devons créer un groupe de sécurité réseau, configurer une règle entrante afin d'ouvrir le port requis et l'associer à l'équilibreur de charge OCI.

  5. Créez le groupe de sécurité réseau. Veillez à remplacer YOUR_COMPARTMENT_ID par votre ID de compartiment réel et YOUR_VCN_ID par votre ID de VCN. Vous pouvez extraire ces informations à partir de la console OCI.

    oci network nsg create --compartment-id [YOUR_COMPARTMENT_ID] --vcn-id [YOUR_VCN_ID] --display-name opencost_nsg
    
  6. Créez une règle entrante qui autorise le trafic TCP sur le port 9090 à partir d'Internet. Vous pouvez télécharger le fichier opencost-nsg-rule.json à partir de cet emplacement : opencost-nsg-rule.json.

    oci network nsg rules add --nsg-id [YOUR_NSG_ID] --from-json file://opencost-nsg-rule.json
    
  7. Attachez le groupe de sécurité réseau nouvellement créé à l'équilibreur de charge OCI. Remplacez YOUR_LB_ID par votre ID d'équilibreur de charge et YOUR_NSG_ID par votre ID de groupe de sécurité réseau.

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

    Attacher un groupe de sécurité réseau à l'équilibreur de charge

  8. Récupérez l'adresse IP externe et utilisez-la pour accéder à OpenCost à l'aide de votre navigateur Web. Exécutez la commande kubectl get svc -n opencost.

    OpenCost ouvert sur le navigateur

    Pour vous familiariser avec l'interface utilisateur OpenCost, reportez-vous à Vidéo : présentation du suivi des coûts Kubernetes et de la facturation cloud par OpenCost.

    Félicitations ! Vous avez installé et configuré OpenCost sur votre cluster OKE.

Etapes suivantes

En intégrant OpenCost à votre cluster OKE et en configurant une tarification personnalisée, vous pouvez obtenir une visibilité précise sur vos coûts SaaS colocatifs. Les ISV peuvent désormais répartir les coûts équitablement et précisément, en veillant à ce que l'utilisation des ressources de chaque locataire soit reflétée dans la facture finale.

Avec la fonctionnalité de tarification personnalisée de OpenCost, vous assurez que les estimations de coût correspondent à la tarification d'OCI, ce qui est essentiel pour maintenir la rentabilité dans un environnement SaaS colocatif.

Remerciements

Ressources de formation supplémentaires

Explorez d'autres ateliers sur docs.oracle.com/learn ou accédez à d'autres contenus de formation gratuits sur le canal Oracle Learning YouTube. De plus, visitez le site education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.

Pour obtenir la documentation produit, consultez le site Oracle Help Center.