附註:

使用 OpenCost 在 OCI Kubernetes 引擎上管理多租用戶 SaaS 成本

簡介

在 Oracle Cloud Infrastructure (OCI) 上提供多租用戶軟體即服務 (SaaS) 解決方案的獨立軟體供應商 (ISV) 通常面臨有效管理成本的挑戰,同時確保每個租用戶的計費準確。SaaS 提供者之間的一種常見方法是使用 Kubernetes 命名空間在 Kubernetes 上執行其租用戶的工作負載,以邏輯方式在同一個叢集中分隔它們。在 Oracle Cloud Infrastructure Kubernetes Engine (OCI Kubernetes 引擎或 OKE) 上部署叢集時,OCI 會提供整體叢集的詳細成本資料。不過,無法為個別 Kubernetes 元件 (例如命名空間) 提供精細的成本洞察分析,這些元件對於追蹤和計費租用戶特定資源使用量至關重要。

在本教學課程中,我們將逐步介紹使用開放原始碼成本監控工具 OpenCost 的易於部署解決方案,此工具可協助在 OKE 的多租用戶環境中追蹤和管理成本。

您身為 ISV,很有可能會執行多個用戶在 OKE 叢集中共用基礎架構的 SaaS 應用程式。挑戰是讓每個租用戶使用資源的相關成本能夠一目瞭然。瞭解這些成本對於準確分配費用至關重要,並確保對每個租用戶公平計費。

如果您無法檢視每一租用戶的資源使用狀況,就很難:

OpenCost 是專為 Kubernetes 環境設計的開放原始碼成本監控和管理工具。它會追蹤 OKE 叢集的資源使用量,並配置 CPU、記憶體、儲存體以及網路的成本。OpenCost 可讓您根據 Kubernetes 命名空間輕鬆地將這些成本對應至租用戶,使其成為具有多租用戶 SaaS 應用程式之 ISV 的理想解決方案。

您可以使用 OpenCost 執行下列作業:

目標

必要條件

在 OKE 叢集上安裝 OpenCost

  1. 建立用於安裝的 OpenCost 命名空間。

    kubectl create namespace opencost
    

    OpenCost 會從 node.spec.providerID 讀取節點資訊,自動偵測 OCI 作為雲端服務提供者 (CSP)。當 OCI 偵測到為 CSP 時,OpenCost 會嘗試從 OCI 價目表 API 擷取訂價資料。擷取公用訂價資料不需要 API 金鑰。

  2. 將 OpenCost 安裝至 OpenCost 命名空間。

    helm install opencost --repo https://opencost.github.io/opencost-helm-chart opencost --namespace opencost
    
  3. 更新 OpenCost。

    helm upgrade opencost --repo https://opencost.github.io/opencost-helm-chart opencost --namespace opencost
    
  4. 請更新服務,讓外部 IP 位址指定給 OCI 負載平衡器。

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

    若要公開存取 OpenCost,我們需要建立一個網路安全群組 (NSG)、設定傳入規則以開啟所需的連接埠,以及將其與 OCI 負載平衡器建立關聯。

  5. 建立網路安全群組 (NSG)。請務必將 YOUR_COMPARTMENT_ID 取代為您的實際區間 ID,並將 YOUR_VCN_ID 取代為您的 VCN ID。您可以從 OCI 主控台擷取此資訊。

    oci network nsg create --compartment-id [YOUR_COMPARTMENT_ID] --vcn-id [YOUR_VCN_ID] --display-name opencost_nsg
    
  6. 建立允許來自網際網路之連接埠 9090 的 TCP 流量的傳入規則。您可以從此處下載 opencost-nsg-rule.json 檔案: opencost-nsg-rule.json

    oci network nsg rules add --nsg-id [YOUR_NSG_ID] --from-json file://opencost-nsg-rule.json
    
  7. 將新建立的網路安全群組 (NSG) 連附至 OCI 負載平衡器。將 YOUR_LB_ID 取代為您的負載平衡器 ID,並將 YOUR_NSG_ID 取代為您的網路安全群組 ID。

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

    將 NSG 連附至負載平衡器

  8. 擷取外部 IP 位址並使用它來使用 Web 瀏覽器存取 OpenCost。執行 kubectl get svc -n opencost 指令。

    已在瀏覽器上開啟 OpenCost

    若要熟悉 OpenCost UI,請參閱影片:瞭解 OpenCost 如何追蹤您的 Kubernetes 成本和雲端計費

    恭喜您!您已順利在您的 OKE 叢集上安裝並設定 OpenCost!

接下來的步驟

透過將 OpenCost 與您的 OKE 叢集整合並設定自訂定價,您可以精確掌握多租用戶的 SaaS 成本。ISV 現在可以公平且準確地分配成本,確保每個租戶的資源使用量反映在最終帳單中。

透過 OpenCost 的自訂定價功能,您可以確保成本預估與 OCI 的定價一致,這對於在多租用戶 SaaS 環境中維持獲利能力至關重要。

認可

其他學習資源

探索 docs.oracle.com/learn 上的其他實驗室,或存取 Oracle Learning YouTube 頻道上的更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。

如需產品文件,請造訪 Oracle Help Center