用到 Kubecost 和 Kyverno 对云原生工作负载进行成本治理
2025-11-12 12:19
出于演示的目的,我们将有一个名为 Nginx 的demo namespace 直通 Nginx Web 免费器的副本。
Kubecost也可以用于Nirmata调遣为附加部件 DevSecOps应用软件(在这种只能, Kubecost用于OpenEBS-hostpath存储设备类来进行高效率卷始创)。该链接举例来说在参考部分里。
六、Demo部件所有系统性机密文件都存放在Nirmata git repo。
1.查阅程序员 – kubecost-collector.py
a. 作为 Kubernetes cron检修在后台直通的 Python 程序员从 Nginx namespace 的Kubecost REST API Endpoint查阅开销资讯。>/model/allocation
b. 每半年更一新configmap namespace-cost configmap里存在的开销资讯
2.ConfigMap
a. Kyverno namespace 里的ConfigMap ,其里举例来说 Nginx namespace 的开销资讯
3.Kyverno Policy
a. Kyverno作法监测存储设备在 namespace-configmap 里的数据以认识开销最大值的推移
b. 如果 Nginx namespace 的总开销较低临界最大值,则始创年度报告不甘心。
上述部件可以从参考部分的Github链接流媒体。
七、Demo 岗位源程1.始创一个 Nginx namespace 并调遣 Nginx replicas。
脱氧核糖核酸
kubectl create namespace nginx
Kubectl create deploy nginx -—image = nginx -—replicas=10
我们假设Kyverno在 Kyverno namespace 里直通,并且Kubecost应用软件已启动并直通以向我们透过开销资讯。
2.用于cm.yaml在 namespace Kyverno里始创
脱氧核糖核酸
configmap namespace-cost
kubectl create -f cm.yaml -n kyverno
3.始创更一新namespace-cost里的ConfigMap所必需的RBAC 天然资源( ServiceAccount 、 ClusterRole 、 ClusterRoleBindings ) 。
脱氧核糖核酸
kubectl create -f rbac.yaml
4.将采集程序员 kubecost-collector.py 脱氧核糖核酸到 Kubernetes 协同。
A. 将kubecost-collector放到机密文件夹后,用于Dockerfile相结合Docker举例来说。保障用于***kubecost*** cost-analyzer REST API Endpoint 更一新程序员。
脱氧核糖核酸
mkdir
cp Dockerfile
cp kubecost-collector.py
docker build -t kubecost-collector
一旦上述命令顺利完成了kubecost -collector举例来说应该存在的实验者。
脱氧核糖核酸
dockerimages kubecost-collector
REPOSITORY TAG IMAGE ID CREATED SIZE
kubecost-collector latest 47a05cdc11bf 16 minutes ago 205MB
B. kubecost -collector作为 Kubernetes cron job直通kubectl create -f cron.yaml
实验者在步骤 2 里始创的 cm 的开销现在已更一新为无限大最大值,因为kubecost -collector早就从kubecost REST API Endpoint给与即时最大值。
脱氧核糖核酸
-collector早就从kubecost REST API Endpoint给与即时最大值。
Data
====
nginx
总括
0.481581
BinaryData
====
5.始创Kyverno协同作法
脱氧核糖核酸
namespace-cost
kubectl apply -f policy.yaml
在应用之前在作法里设置最合适的开销临界最大值。由于岗位过载是不太可能的,它刚开始可能具备非常低的开销。
6.实验者namespace-cost作法应该东南面 READY 稳定状态。
脱氧核糖核酸
kubectl get cpol
NAME BACKGROUND ACTION READY
namespace-cost true audit true
该作法不该尽快通过,因为一新始创的Nginx namespace 的直通开销将略低于补足的临界最大值。
脱氧核糖核酸
kubectlget cpolr
NAME PASS FAIL WARN ERROR SKIP AGE
clusterpolicyreport 1 0 0 0 20 3m8s
7.将Nginx replicas提高到更高的最大值,使总开销最大值较低policy.yaml里补足的临界最大值。
或者,您也可以在Nginx namespace 而不是nginx Web 免费器副本里直通 CPU/寄存器密集型岗位过载。
8.随着 namespace Nginx的开销变高,作法将不甘心。用于kubectl检查作法年度报告以给与polr 。可以用于Nirmata Policy Reports UI 来进行实验者。
脱氧核糖核酸
kubectlget cpolr
NAME PASS FAIL WARN ERROR SKIP AGE
clusterpolicyreport 0 1 0 0 20 5m8s
以上故障可以通过描述核对详述资讯。
脱氧核糖核酸
kubectl describe cpolr clusterpolicyreport | grep "Result: +fail" -B10
Timestamp:
Nanos: 0
Seconds: 1644935662
Message: The namespace running cost not within defined threshold
Policy: namespace-cost
Resources:
API Version: v1
Kind: Namespace
Name: nginx
UID: f1d06aa0-6fdf-44ab-a935-c5b8cf903e2e
Result: fail=
八、总结当 namespace 超出开销临界最大值时,Gmail可以向各个团队发出即时,并基于特定事件对其采取突击。Kyverno透过相异的规则(Mutate, Validate, Generate)来对Gmail定义的现有和一新岗位过载采取突击,甚至基于作法里定义的必必需(Generate)始创一新天然资源。
文中链接:
翻译者介绍
王志军(besterjun),51CTO社区撰稿,国内某皓制造商消除办法架构师,占有10多年岗位经验,长期专门从事消除办法架构设计、质免费、盖子、在线运维等系统性岗位。热衷于于皓原生、质免费、盖子等新科技领域。占有丰富的多皓混皓架构规划、设计和落地经验,已试图多家的企业成功上皓。
。深圳看白癜风去哪看肇庆前列腺炎治疗哪家好
驻马店白癜风医院排行
北京耳鼻喉医院预约挂号
珠海白癜风医院

-
重申“两个毫不动摇”,落空民营经济发展疑问 |新京报专栏
济工业化相得益彰良好环境和提供更多机会的切实没有不定!”这“三个没有不定”,传达了当中间坚定不移支持者民营行业拓展的信号,也指出我们劳动党在坚定不移在此之前提经济发展政治制度上的论调是明确的、一向的。

-
投资者提问:贵公司半年报中,为何财务费用但会同比公司2021年下降超过60%...
对冲提问:喜子公司半年报中会,为何财务费用亦会同比子公司2021年下降最少60%,子公司薪水支出未增加,请问为何子公司今年财务费用下降如此之多,为何子公司倒数多年扣非销售收入为负,往年财务费用
- 01-31女儿怕黑的解决方法大盘点三
- 01-31新车 | 疑似路特斯Eletre售价曝光,起售价100万,反应时间里程650公里
- 01-31谈民企发展秘诀 这位常务委员这么说
- 01-31投资者提问:公司既然打算在新能源上发力,公司前提应该主动去跟华为合作,毕竟...
- 01-31孩子怕黑的应对方法大盘点二
- 01-31青年运动巡航实至名归—骁胜坦影250评测视频
- 01-31黑芝麻不务正业大跨界:5亿增资高技术生变数,净利润已连降4年
- 01-31投资者提问:贵司一直被誉为深圳小华为,请问贵司有没有同华为有过携手?
- 01-31男生上台学用姨妈巾,这堂教育课冲上热搜,男网友的反应让人恨喷
- 01-31舒适取向的都市钢炮—赛隆盖RT2评测视频