上游进展
- Fix memory leak on kube-scheduler preemption by amewayne · Pull Request #111773 · kubernetes/kubernetes
这是一个很小的 PR,通过增加了一行 defer cancel()
,修复了 kube-scheduler 频繁抢占时的内存泄漏问题。
不过社区中其他人也发现了原本那段代码需要进行优化,于是提交了另一个 PR fix(scheduler): split scheduleOne into two functions for schedulingCycle and bindingCycle by sanposhiho · Pull Request #111775 · kubernetes/kubernetes 来进行更加彻底的修复。(尚未合并)
- Share a single etcd3 client logger across all clients by negz · Pull Request #111477 · kubernetes/kubernetes
来自 Crossplane 项目的 @negz 指出,在 Crossplane 项目中,有时候会有上千种 CRD 资源。他发现当存在约 1900 种 CRD 资源时,kube-apiserver 大约使用了 8Gi RSS 。
经过分析,发现这是由于未在实例化 etcd3 client 时候共享 logger,所以每个 etcd3 client 实例的时候,都会创建一个自己的 logger,从而导致占用了很多的资源。
在这个 PR 中是通过在创建 etcd3 client 的时候,传递已经创建好的 logger,让所有的 clients 共享,以此来减少资源的浪费。
当然,和上述的 PR 类似,他发现目前 Kubernetes 是为每个 CRD 创建一个 etcd client,显然,这应该也是可以优化的,仅仅创建一个 client,共享即可。
我有点记不清为什么原来是为每个 CRD 创建一个 client 了,但目前他在积极的完成新的 PR #111559 ,期待能顺利完成!
etcd 项目健康度的担忧
众所周知,etcd 是 Kubernetes 的核心组件之一,同时它也被大量其他的开源项目所依赖,比如 Apache APISIX 也是使用 etcd 作为其默认的数据存储的。
但是 etcd 最早的两个维护者,基本上都由于工作变动的原因已经不在 etcd 项目中积极活跃了。后来社区中剩余的一些贡献者开始承担起了该项目的维护工作。
在几个月之前,etcd 项目现有的维护者们,由于难以达到大多数人的同意,也发起了一次社区治理方案的调整,在决策时改成了惰性共识 https://github.com/etcd-io/etcd/pull/14053
当前 CNCF TOC 正在讨论 etcd 项目的健康度问题,也许我们可以做点什么,让这个项目变的更好。
Argo 项目毕业提案
Argo Project Graduation Proposal by edlee2121 · Pull Request #604 · cncf/toc
这是一个从 2021 年 2 月开始提交的提案,不过中间由于需要进行一些安全审查,以及其他的一些审查及挑战,所以一直没有完成。近期又重新进行了更新,并且大多数的报告也已经补充, 至少今年应该是可以毕业的吧(我猜测)。
另外也看到在进行报告补充过程中,Argo 相关的两篇不错的文章,推荐给大家:
- Argo Security Automation with OSS-Fuzz | by Yuan Tang | Argo Project
- Best Practices for Multi-tenancy in Argo CD | by Dan Garfield | Argo Project
新版本发布
- Trivy 发布了 v0.31 版本
- Kyma 发布了 v2.5 版本
- Cilium 发布了 v1.12.1 版本
- Helm 发布了 v3.9 版本
好了,以上就是这期的内容,我们下期再见!