一、 相關(guān)活動介紹:
自從上次參加完CSDN聯(lián)合騰訊云發(fā)起的《云原生之降本增效》活動后,只是停留聚焦在優(yōu)秀實踐方法論、資源與彈性、架構(gòu)設(shè)計上的了解,本次《騰訊云 Finops Crane 開發(fā)者集訓營》是深入了解并實踐基于 FinOps 框架開展的一個成本優(yōu)化項目Crane。
- 活動相關(guān)鏈接:
https://marketing.csdn.net/p/038ae30af2357473fc5431b63e4e1a78
- 相關(guān)講座視頻回放鏈接:
https://live.csdn.net/room/csdnnews/CPEN2JKh
https://live.csdn.net/room/csdnnews/83xhNo4C
二、 背景來由:
1.云上資源利用率低,導致浪費成本:
2.在后云原生時代,成本管理面臨著諸多挑戰(zhàn)?
- 面臨云原生上的降本挑戰(zhàn):
面對云原生成本管理現(xiàn)狀與挑戰(zhàn),F(xiàn)inOps 定義了一系列云財務(wù)管理規(guī)則和最佳實踐,通過助力工程和財務(wù)團隊、技術(shù)和業(yè)務(wù)團隊彼此合作, 進行數(shù)據(jù)驅(qū)動的成本決策,使組織能夠獲得最大收益。
三、 什么是FinOps?
騰訊的云原生降本增效最佳實踐是基于FinOps框架開展的。
FinOps團隊的日常工作涵蓋降本增效戰(zhàn)略、成本分析與浪費識別、目標制定與下發(fā)、費率優(yōu)化、業(yè)務(wù)側(cè)優(yōu)化、平臺側(cè)優(yōu)化。
基于以上的方法論,騰訊開源了一個成本優(yōu)化項目Crane(Cloud Resource Analytics and Economics)。
四、 什么是Crane?
Crane是由騰訊云主導開源的國內(nèi)第一個基于云原生技術(shù)的成本優(yōu)化項目,遵循FinOps標準,已經(jīng)獲得FinOps基金會授予的全球首個認證降本增效開源方案。
Crane項目開源鏈接,可以star和收藏:
https://github.com/gocrane/crane
1.成就:
2.價值:
Crane 能夠幫助云原生用戶充分發(fā)揮云上資源的最大價值,從而實現(xiàn)企業(yè)降本增效。
3.功能:
Crane 依托于云原生技術(shù),結(jié)合監(jiān)控預(yù)測、調(diào)度增強、業(yè)務(wù)混部等多項硬核科技,將優(yōu)化措施應(yīng)用到了云成本優(yōu)化的多個關(guān)鍵環(huán)節(jié),從而輔助用戶決策、簡化運維效率、提升系統(tǒng)穩(wěn)態(tài)、全面降本增效。
4.組成部分:
五、 Crane的應(yīng)用:
六、 公司Crane可行性分析:
公司的業(yè)務(wù)集群中的業(yè)務(wù)大多是內(nèi)存消耗型的,因此極易出現(xiàn)內(nèi)存利用率很高的節(jié)點,并且各個節(jié)點的內(nèi)存利用率分布也很不平均。
1.公司目前業(yè)務(wù)服務(wù)k8s的使用情況:
2.公司業(yè)務(wù)報表相關(guān)服務(wù)使用情況:
3. 相關(guān)CPU與內(nèi)存使用率:
4. 慢SQL導致系統(tǒng)緩慢:
5. 針對于大型活動內(nèi)存使用率:
6. 大量的阻塞任務(wù):
七、 本地環(huán)境實驗:
需要一些提前的預(yù)裝的軟件:docker、kubectl、Helm、kind,如果環(huán)境中已經(jīng)有,不需要再安裝
1.安裝docker:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
2. 安裝 kubectl:
# 下載最新發(fā)行版:
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
# 下載 kubectl 校驗和文件:
curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"
# 基于校驗和文件,驗證 kubectl 的可執(zhí)行文件:
echo "$(cat kubectl.sha256) kubectl" | sha256sum –check
# 安裝 kubectl
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
# 執(zhí)行測試,以保障你安裝的版本是最新的:
kubectl version --client
3. 安裝 Helm:
curl https://baltocdn.com/helm/signing.asc | gpg --dearmor | sudo tee /usr/share/keyrings/helm.gpg > /dev/null
sudo apt-get install apt-transport-https --yes
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/helm.gpg] https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list
sudo apt-get update
sudo apt-get install helm
- 安裝 kind:
# For AMD64 / x86_64
[ $(uname -m) = x86_64 ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.19.0/kind-linux-amd64
# For ARM64
[ $(uname -m) = aarch64 ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.19.0/kind-linux-arm64
chmod +x ./kind
sudo mv ./kind /usr/local/bin/kind
5. 安裝本地的 Kind 集群和 Crane 組件:
curl -sf https://raw.githubusercontent.com/gocrane/crane/main/hack/local-env-setup.sh | sh -
提示:Pod 的啟動需要一定的時間,等幾分鐘后輸入命令查看后集群狀態(tài)是否都 Running
- 確保所有 Pod 都正常運行:
export KUBECONFIG=${HOME}/.kube/config_crane
kubectl get pod -n crane-system
7. 訪問 Crane Dashboard:
kubectl -n crane-system port-forward service/craned --address 0.0.0.0 9090:9090
8. 添加本地集群:
后續(xù)的終端操作請在新窗口操作,每一個新窗口操作前請把配置環(huán)境變量加上(不然會出現(xiàn)8080端口被拒絕的提示)
export KUBECONFIG=${HOME}/.kube/config_crane
八、 使用智能彈性 EffectiveHPA:
- HPA的不足:
2. EHPA 的主要架構(gòu):
3. 實驗:
3.1 安裝Metrics Server:
kubectl apply -f installation/components.yaml
kubectl get pod -n kube-system
3.2 創(chuàng)建測試應(yīng)用:
用以下命令啟動一個 Deployment 用 hpa-example 鏡像運行一個容器, 然后將其暴露為一個 服務(wù)(Service):
kubectl apply -f installation/php-apache.yaml
kubectl apply -f installation/nginx-deployment.yaml
3.3 創(chuàng)建 EffectiveHPA:
kubectl apply -f installation/effective-hpa.yaml
運行以下命令查看 EffectiveHPA 的當前狀態(tài):
kubectl get ehpa
3.4 增加負載:
# 在單獨的終端中運行它
# 如果你是新創(chuàng)建請配置環(huán)境變量
export KUBECONFIG=${HOME}/.kube/config_crane
# 以便負載生成繼續(xù),你可以繼續(xù)執(zhí)行其余步驟
kubectl run -i --tty load-generator --rm --image=busybox:1.28 --restart=Never -- /bin/sh -c "while sleep 0.01; do wget -q -O- http://php-apache; done"
隨著請求增多,CPU利用率會不斷提升,可以看到 EffectiveHPA 會自動擴容實例。
說明:預(yù)測數(shù)據(jù)需要兩天以上的監(jiān)控數(shù)據(jù)才能出現(xiàn)。
可以看到藍色的預(yù)測數(shù)據(jù)與綠色的實時監(jiān)控數(shù)據(jù)幾乎吻合,表示預(yù)測數(shù)據(jù)的準確性。同時黃色曲線即為上文所說的未來時間內(nèi)預(yù)測數(shù)據(jù)的最大值,所以將預(yù)測指標也作為 HPA 的閾值之一就可以達到提前擴容的效果。
- Crane Dashboard顯示:
- 當月總成本:過去一個月集群總成本。從安裝Crane時間開始,按小時累加集群成本
- 預(yù)估每月成本:以最近一小時成本估算未來一個月的成本。每小時成本 * 24 * 30
- 預(yù)估CPU總成本:以最近一小時CPU成本估算未來一個月的CPU成本。每小時CPU成本 * 24 * 30
- 預(yù)估Memory總成本:以最近一小時Memory成本估算未來一個月的Memory成本。每小時Memory成本 * 24 * 30
成本洞察->集群總覽:
成本洞察->應(yīng)用成本分布:
六、總結(jié):文章來源:http://www.zghlxwxcb.cn/news/detail-531344.html
毫無疑問,Crane 已經(jīng)是 K8s 集群中用于云資源分析和經(jīng)濟的最佳 FinOps 平臺了。目前,騰訊云 Crane 已進入 CNCF LandScape,這意味著 Crane 已成為云原生領(lǐng)域的重要項目。面向未來,騰訊云還將持續(xù)反饋開源社區(qū)、共建開源生態(tài),幫助更多企業(yè)通過云原生全面釋放生產(chǎn)力,加速實現(xiàn)數(shù)字化和綠色化雙轉(zhuǎn)型。文章來源地址http://www.zghlxwxcb.cn/news/detail-531344.html
到了這里,關(guān)于騰訊云 Finops Crane 開發(fā)者集訓營 - 云成本優(yōu)化一站式解決方案實踐的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!