前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kubernetes 1.21:指标稳定性到达毕业阶段

Kubernetes 1.21:指标稳定性到达毕业阶段

作者头像
CNCF
发布2021-05-07 16:42:28
8960
发布2021-05-07 16:42:28
举报
文章被收录于专栏:CNCF

作者:Han Kang(谷歌),Elana Hashman(Red Hat)

Kubernetes 1.21 标志着指标稳定性框架的毕业阶段,同时也标志着第一个官方支持的稳定指标。稳定的指标不仅提供了可支持性的保证,指标稳定性框架还为你在遇到有问题的指标时提供了逃生通道。

这里查看Kubernetes 稳定指标列表[1]

什么是稳定指标,为什么我们需要它们?

从消费的角度来看,稳定的指标可以可靠地在多个 Kubernetes 版本中使用,而不会出现摄入失败的风险。

指标的稳定性是社区持续关注的问题。集群监控基础设施通常假定某些控制平面指标具有稳定性,因此我们引入了一种将指标版本化为适当 API 的机制,其稳定性保证了正式指标的弃用过程。

指标的稳定级别是什么?

指标目前可以有两个稳定级别:alpha 或 stable。

Alpha指标没有稳定性保证;因此,可以随时修改或删除它们。此时,Kubernetes 的所有指标都隐含地属于这一类。

Stable指标可以保证不发生变化,除非该指标可能在未来的 Kubernetes 版本中被标记为弃用。我们所说的不改变,指的是三件事:

  1. 指标本身不会被删除或重命名
  2. 指标的类型不会被修改
  3. 不能从这个指标中添加或删除任何标签

从摄取的角度来看,为已经存在的标签添加或删除可能的值是向后兼容的,但不是标签本身。因此,允许从现有标签中添加或删除值。在将来的 Kubernetes 版本中,稳定指标也可以被标记为弃用,因为这将在元数据字段中进行跟踪,实际上并不会改变指标本身。

不允许从稳定指标中删除或添加标签。为了从现有的稳定指标中添加或删除一个标签,我们必须引入一个新的指标并弃用稳定的指标;否则将违反兼容性协议。

指标是如何被弃用的?

虽然弃用策略只影响稳定指标的稳定性保证(而不是 alpha 指标),但可以选择性地在 alpha 指标上提供弃用信息,以帮助组件所有者告知用户未来的意图,并帮助完成过渡计划。

经过弃用过程的稳定指标将表示该指标最终将被删除。指标的弃用生命周期大致是这样的(每个阶段代表一个 Kubernetes 版本):

弃用的指标与它们的稳定指标具有相同的稳定性保证。如果一个稳定指标已被弃用,那么已弃用的稳定指标就保证不会改变。当一个稳定指标被弃用时,未来的 Kubernetes 版本将指定为该指标被认为弃用的版本。

根据 Kubernetes 官方弃用策略的精神,已弃用的指标的描述文本将以已弃用通知字符串“(Deprecated from x.y)”作为前缀,并在指标注册期间发出警告日志。

像它们的稳定指标一样,弃用的指标将自动注册到指标端点。在随后的版本中(当指标的 deprecatedVersion 等于 current_kubernetes_version - 4),被弃用的指标将变成隐藏的指标。隐藏指标不会自动注册,因此默认情况下对最终用户是隐藏的。这些隐藏指标可以在达到隐藏状态后为一个版本显式地重新启用,从而为集群操作人员提供一个迁移路径。

作为 Kubernetes 组件的所有者,我如何添加稳定的指标?

在指标实例化期间,可以通过将元数据字段 StabilityLevel 设置为“Stable”来指定稳定性。当一个 StabilityLevel 没有明确设置时,指标默认为“Alpha”稳定性。请注意,在运行时确定字段的指标不能被标记为 Stable。稳定的指标将在预提交阶段的静态分析期间被检测出来,并且必须由 sig-instrumentation 检查。

代码语言:javascript
复制
var metricDefinition = kubemetrics.CounterOpts{
    Name: "some_metric",
    Help: "some description",
    StabilityLevel: kubemetrics.STABLE,
}

有关设置指标稳定性和弃用的更多示例,请参见指标稳定性 KEP[2]

我如何参与其中?

这个项目,就像所有 Kubernetes 一样,是许多来自不同背景的贡献者共同努力的结果。我们非常感谢 Kubernetes 社区所有帮助审核项目设计和实施的贡献者,包括但不限于以下人士:

  • Han Kang(logicalhan)
  • Frederic Branczyk(brancz)
  • Marek Siarkowicz(serathius)
  • Elana Hashman(ehashman)
  • Solly Ross(DirectXMan12)
  • Stefan Schimanski(sttts)
  • David Ashpole(dashpole)
  • Yuchen Zhou(yoyinzyc)
  • Yu Yi(erain)

如果你有兴趣参与测仪的设计和开发或 Kubernetes 指标系统的任何部分,请加入Kubernetes Instrumentation SIG[3]。我们正在快速发展,并一直欢迎新的贡献者。

参考资料

[1]

Kubernetes 稳定指标列表: https://github.com/kubernetes/kubernetes/blob/master/test/instrumentation/testdata/stable-metrics-list.yaml

[2]

指标稳定性 KEP: https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/1209-metrics-stability

[3]

Kubernetes Instrumentation SIG: https://github.com/kubernetes/community/tree/master/sig-instrumentation

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-04-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CNCF 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是稳定指标,为什么我们需要它们?
  • 指标的稳定级别是什么?
  • 指标是如何被弃用的?
  • 作为 Kubernetes 组件的所有者,我如何添加稳定的指标?
  • 我如何参与其中?
    • 参考资料
    相关产品与服务
    容器服务
    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档