啟用成本洞察功能
成本洞察功能可以協(xié)助企業(yè)IT成本管理人員從多維度了解集群資源使用量及成本分布,提供成本節(jié)約建議。本文介紹如何開(kāi)啟和關(guān)閉成本洞察功能。
前提條件
確保Kubernetes集群的版本為1.18.8及以上,否則請(qǐng)升級(jí)集群。具體操作,請(qǐng)參見(jiàn)手動(dòng)升級(jí)集群。
已開(kāi)啟阿里云Prometheus。具體操作,請(qǐng)參見(jiàn)步驟一:開(kāi)啟阿里云Prometheus監(jiān)控。
成本洞察費(fèi)用說(shuō)明
成本洞察會(huì)產(chǎn)生以賬單、云資源價(jià)格等作為數(shù)據(jù)的自定義指標(biāo),上報(bào)至阿里云Prometheus中,因此會(huì)產(chǎn)生阿里云Prometheus自定義指標(biāo)的額外費(fèi)用。具體費(fèi)用以阿里云Prometheus規(guī)格為準(zhǔn)。關(guān)于阿里云Prometheus監(jiān)控的詳細(xì)計(jì)費(fèi)說(shuō)明,請(qǐng)參見(jiàn)計(jì)費(fèi)概述。
成本洞察數(shù)據(jù)量與集群相關(guān)云資源每天賬單數(shù)量、集群節(jié)點(diǎn)規(guī)模相關(guān)。您可以在ARMS Prometheus控制臺(tái)查詢集群成本洞察數(shù)據(jù)量。
參照下文開(kāi)啟成本洞察功能后,您可以登錄ARMS控制臺(tái),在控制臺(tái)左側(cè)導(dǎo)航欄選擇 ,在右側(cè)頁(yè)面左上角根據(jù)集群名稱選擇實(shí)例,頁(yè)面下劃,在頁(yè)面底部24h Top 10 自定義指標(biāo)上報(bào)量(Job)中查看alibaba-cloud-cost-exporter的上報(bào)量,即為ACK集群每天成本洞察數(shù)據(jù)量。
費(fèi)用標(biāo)簽功能默認(rèn)對(duì)ACK成本洞察的數(shù)據(jù)進(jìn)行過(guò)濾,您需在費(fèi)用與成本開(kāi)啟費(fèi)用標(biāo)簽功能,并在費(fèi)用標(biāo)簽功能中開(kāi)啟ack.aliyun.com
、ack.alibabacloud.com/nodepool-id
兩個(gè)標(biāo)簽,避免ACK成本洞察功能無(wú)法獲取賬單、節(jié)點(diǎn)池分析數(shù)據(jù)。
開(kāi)啟成本洞察功能
登錄容器服務(wù)管理控制臺(tái),在左側(cè)導(dǎo)航欄選擇集群。
在集群列表頁(yè)面,單擊目標(biāo)集群名稱,然后在左側(cè)導(dǎo)航欄,選擇 。
授權(quán)AliyunCSManagedCostRole角色并安裝ack-cost-exporter組件,開(kāi)啟成功洞察。
授予訪問(wèn)ACK集群賬單數(shù)據(jù)的權(quán)限
如果您使用的是托管版集群,系統(tǒng)會(huì)自動(dòng)授予相關(guān)權(quán)限。完成授權(quán)后,系統(tǒng)會(huì)創(chuàng)建AliyunCSManagedCostRole角色,阿里云Prometheus使用該角色訪問(wèn)您在費(fèi)用與成本的賬單數(shù)據(jù)并進(jìn)行成本洞察。
您也單擊云資源訪問(wèn)授權(quán)鏈接,在云資源訪問(wèn)授權(quán)頁(yè)面,單擊同意授權(quán)。
在成本洞察頁(yè)面,單擊KubernetesWorkerRole-***。
在RAM角色頁(yè)面的權(quán)限管理頁(yè)簽,單擊權(quán)限策略列下的k8sWorkerRole****。
在權(quán)限策略詳情頁(yè)面的策略內(nèi)容頁(yè)簽下,單擊修改策略內(nèi)容。
在腳本編輯框中Statement字段中增加以下授權(quán)規(guī)則,修改完成后單擊編輯基本信息,然后單擊確定。
{ "Action": [ "bssapi:QueryInstanceBill", "bssapi:DescribeInstanceBill" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "ecs:DescribeDisks", "ecs:DescribeSpotPriceHistory", "ecs:DescribeInstances", "ecs:DescribePrice" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "eci: DescribeContainerGroupPrice" ], "Resource": "*", "Effect": "Allow" }
說(shuō)明多個(gè)策略內(nèi)容需要用英文半角逗號(hào)(,)分隔。
安裝組件
按照頁(yè)面指引,安裝ack-cost-exporter組件。安裝完成后,頁(yè)面自動(dòng)跳轉(zhuǎn)至成本洞察頁(yè)面。
關(guān)閉成本洞察功能
如無(wú)需使用成本洞察功能,您可以卸載ack-cost-exporter組件,關(guān)閉該功能。
登錄容器服務(wù)管理控制臺(tái),在左側(cè)導(dǎo)航欄選擇集群。
在集群列表頁(yè)面,單擊目標(biāo)集群名稱,然后在左側(cè)導(dǎo)航欄,選擇 。
在組件管理頁(yè)面找到ack-cost-exporter,在卡片單擊卸載,然后在卸載組件對(duì)話框,單擊確定。
常見(jiàn)問(wèn)題
ack-cost-exporter組件安裝或卸載失敗后如何處理?
當(dāng)安裝ack-cost-exporter組件失敗時(shí),請(qǐng)先通過(guò)以下命令手動(dòng)刪除ack-cost-exporter組件,然后重新安裝ack-cost-exporter組件。關(guān)于安裝ack-cost-exporter組件的具體操作,請(qǐng)參見(jiàn)管理組件。
kubectl delete deployment ack-cost-exporter -n kube-system kubectl delete service alibaba-cloud-price-exporter -n kube-system kubectl delete service alibaba-cloud-billing-exporter -n kube-system kubectl delete service alibaba-cloud-cost-exporter -n kube-system kubectl delete ServiceMonitor alibaba-cloud-price-exporter -n kube-system kubectl delete ServiceMonitor alibaba-cloud-billing-exporter -n kube-system kubectl delete ServiceMonitor alibaba-cloud-cost-exporter -n kube-system kubectl delete ClusterRoleBinding ack-cost-exporter-cluster-role-binding kubectl delete ClusterRoleBinding ack-cost-exporter-cluster-role-binding-v1 kubectl delete ServiceAccount ack-cost-exporter -n kube-system kubectl delete ClusterRole ack-cost-exporter-cluster-role
當(dāng)卸載ack-cost-exporter組件失敗時(shí),可以通過(guò)以下命令手動(dòng)刪除ack-cost-exporter組件。
kubectl delete deployment ack-cost-exporter -n kube-system kubectl delete service alibaba-cloud-price-exporter -n kube-system kubectl delete service alibaba-cloud-billing-exporter -n kube-system kubectl delete service alibaba-cloud-cost-exporter -n kube-system kubectl delete ServiceMonitor alibaba-cloud-price-exporter -n kube-system kubectl delete ServiceMonitor alibaba-cloud-billing-exporter -n kube-system kubectl delete ServiceMonitor alibaba-cloud-cost-exporter -n kube-system kubectl delete ClusterRoleBinding ack-cost-exporter-cluster-role-binding kubectl delete ClusterRoleBinding ack-cost-exporter-cluster-role-binding-v1 kubectl delete ServiceAccount ack-cost-exporter -n kube-system kubectl delete ClusterRole ack-cost-exporter-cluster-role