Remarques :
- Ce tutoriel nécessite un accès à Oracle Cloud. Pour vous inscrire à un compte gratuit, reportez-vous à Introduction au niveau gratuit d'Oracle Cloud Infrastructure.
- Il utilise des exemples de valeurs pour les informations d'identification, la location et les compartiments Oracle Cloud Infrastructure. Lorsque vous terminez votre atelier, remplacez ces valeurs par celles propres à votre environnement cloud.
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 :
- Facturez avec précision les locataires pour leur utilisation des ressources Kubernetes.
- Optimisez les ressources pour éviter le surprovisionnement.
- Contrôlez les coûts, en garantissant la rentabilité de votre entreprise SaaS.
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 :
- Allouez les coûts par espace de noms (ou par d'autres composants Kubernetes) pour suivre l'utilisation des locataires individuels.
- Suivez et analysez la consommation de ressources par locataire sur une période donnée.
- Optimisez les environnements des locataires pour assurer une utilisation efficace des ressources.
Objectifs
- Gérez les coûts SaaS colocatifs sur OKE avec OpenCost.
Prérequis
-
Cluster OKE actif dans OCI.
-
kubectl installé et configuré pour accéder à votre cluster OKE.
-
Helm est installé pour gérer vos packages Kubernetes.
-
Installez Prometheus. Exécutez la commande suivante .
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
Installation de OpenCost sur le cluster OKE
-
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. -
Installez OpenCost dans l'espace de noms OpenCost.
helm install opencost --repo https://opencost.github.io/opencost-helm-chart opencost --namespace opencost
-
Mettez à jour OpenCost.
helm upgrade opencost --repo https://opencost.github.io/opencost-helm-chart opencost --namespace opencost
-
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.
-
Créez le groupe de sécurité réseau. Veillez à remplacer
YOUR_COMPARTMENT_ID
par votre ID de compartiment réel etYOUR_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
-
Créez une règle entrante qui autorise le trafic TCP sur le port
9090
à partir d'Internet. Vous pouvez télécharger le fichieropencost-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
-
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 etYOUR_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]" ]'
-
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
.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.
Liens connexes
Remerciements
- Auteur - JP Santana, architecte cloud maître
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.
Manage Multi-Tenant SaaS Costs on OCI Kubernetes Engine with OpenCost
G17282-01
October 2024