当前位置:首页 >> 数码
数码

用到 Kubecost 和 Kyverno 对云原生工作负载进行成本治理

2025-11-12 12:19

和Kyverno。

出于演示的目的,我们将有一个名为 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多年岗位经验,长期专门从事消除办法架构设计、质免费、盖子、在线运维等系统性岗位。热衷于于皓原生、质免费、盖子等新科技领域。占有丰富的多皓混皓架构规划、设计和落地经验,已试图多家的企业成功上皓。

深圳看白癜风去哪看
肇庆前列腺炎治疗哪家好
驻马店白癜风医院排行
北京耳鼻喉医院预约挂号
珠海白癜风医院

上一篇: 兴化诏安县:首次购买144平米以下新房,每平补贴160元

下一篇: 6K价位买Find X5 Pro有用吗,首发入手用户分享我的体验

相关阅读
重申“两个毫不动摇”,落空民营经济发展疑问 |新京报专栏

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

投资者提问:贵公司半年报中,为何财务费用但会同比公司2021年下降超过60%...

对冲提问:喜子公司半年报中会,为何财务费用亦会同比子公司2021年下降最少60%,子公司薪水支出未增加,请问为何子公司今年财务费用下降如此之多,为何子公司倒数多年扣非销售收入为负,往年财务费用

友情链接