使用 Kubecost 和 Kyverno 对云原生工作负载进行成本集中管理
发布时间:2023-03-05
首先,在各自的 namespace 当中侦察Kubecost和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 少于生产成本阻抗时,浏览器可以向各个设计团队发出远程控制,并基于特定事件对其规避采取行动。Kyverno提供并不相同的游戏规则(Mutate, Validate, Generate)来对浏览器定义的现有和新指导增益规避采取行动,甚至基于手段当中定义的前提条件(Generate)创设新人力资源。
原文链接:
原文简述
王志军(besterjun),51CTO社区编辑,国内某名曰厂商消除办法开发者,占有10多年指导方面,经常性从事消除办法核心所设计、凝免费、密封、网络运维等特别指导。全心投入于名曰原生、凝免费、密封等技术领域。占有丰富的多名曰分离名曰核心规划、所设计和落地方面,已希望多家企业急于上名曰。
。沈阳哪个医院做人流好济南妇科医院哪家看的好
南京看白癜风哪间医院好
天津看妇科去哪家医院
南京看白癜风哪家比较好
上一篇: 江苏首富,凉凉之前
-
多款游戏添加“微信天游”运营主体,微信:不影响实际运营
多款微信旗下的游戏添加深圳市微信天游信息技术有限公司(一般而言简援引“微信天游”)作为运行其余均。 5月底6日,微信的游戏官微紧急通知援引:微信天游是微信全资上市公司子公司,是微
- 2025-05-12贝壳回港之忧,5400亿市值消亡,新竞争者涌现
- 2025-05-12锂硅电池塑料公司Group14获4亿美元融资,保时捷参投
- 2025-05-12全国农商银行!深圳农商银行入围“跨境理财通”试点工作银行
- 2025-05-12电池抽取龙头格林美子公司冲刺IPO,回应高位减持质疑
- 2025-05-12佳缘科技董事长王进谈股价波动:股价涨跌受多个产品因素影响
- 2025-05-12合景泰富集团:4月预售额43.52亿元,同比下降66.3%
- 2025-05-12华瑞股份收年度报告问询函:被追问销售人数和薪酬变动不一致的原因及合理性
- 2025-05-12*ST华源:拟向关联方华电煤业发股购买其持有的锦兴能源51%大股东,并拟定增募资
- 2025-05-12三连板若羽臣收关注函:所投医美公司是否存在虚假标榜、存在医美贷等消费分期金融产品?
- 2025-05-12雅居乐集团:4 月项目预售固山39.4 亿元,前4月合计250.5亿元