前言
《云原生生态周报》由阿里云容器平台联合蚂蚁金服共同发布,每周一期。众多一线社区专家与您一起“跟踪动态,读懂社区”,分享云原生社区项目进展、活动发布、精选博客等信息。以下是第四十五期云原生生态周报的内容。
业界要闻
Argo 项目是一组 Kubernetes 原生工具,用于运行和管理 Kubernetes 上的作业和应用程序。目前由 Argo Workflows,Argo Events,Argo CD 和 Argo Rollouts 四个子项目组成。4 月 8 日,CNCF 技术监督委员会(Technical Oversight Committee,TOC)投票决定接受 Argo 作为孵化级别的托管项目。
Argo CD 发布 v1.5 版本,v1.5 在性能上进行了大幅度的优化,同时降低了对 APIServer 的压力;此外,v1.5 还对 Helm 3 charts 进行了支持。
4 月 7 日,CloudNative 峰会在 youtube 上通过直播形式召开,峰会主要介绍了 CNCF 毕业项目(包括 Kubernetes,Prometheus,Envoy,Jaeger 等)的最新进展以及讨论未来在云原生技术上的一些新的动向。
受 COVID-19 疫情影响,大多数人开启了居家办公模式,社交关系拉远,不管是对身体健康还是心理健康都有所影响。CNCF Well-Being Working Group 提供了一份疫情期间工作指导,包括一些常见问题的解答以及建议。
5.COVID-19 : 延长对 Helm v2 的错误修复
因 COVID-19,Helm 维护人员决定延长 Helm v2 的 Bug 修复服务时间。
上游重要进展
1.Even with build error, kubectl apply should apply all valid resources
优化了 kubectl apply 的逻辑,尽可能多的 apply YAML 中的有效资源。
2.kubelet add initial support for cgroupv2
支持在 cgroup v2 unified mode 的机器上跑 kubelet。同时做了 cpu.shares(阈值为 2-262144 )到 cpu.weight(阈值为 1-10000)的转换。
3.apiserver: add a metric exposing etcd database size
在 apiserver 端暴露了一个 etcd db size 使用量的 metric。
4.Fix SelectorFromSet: add a ValidatedSelectorFromSet
解决了一个没有对 Selector 结果进行校验的 Bug。目前使用 labels.SelectorFromSet,如果解析失败(例如 label value 误填了一个很长的值),会返回一个空的 Selector,从而导致所有的资源被筛选出。
5.Reduce locking when calculating affinity scores
调度器优化了计算亲和性分数时的性能,将循环内部的一个读写锁移到了 goroutine 最外层(优化了锁粒度)。
6.apiextensions: wait for complete discovery endpoint
使用 discovery endpoint 时会等待 CRD 同步状态完毕后再上报 readiness,解决了 discovery enxpoint 启动后会短暂不可用的问题。
7.Add pod-level process stats to the summary API for out-of-pid eviction
Kubelet 进行 out-of-pid eviction 时,目前仅利用 PodPriority 来进行排序,这个 KEP 计划加入更多进程级别数据(例如 Pod 内进程数)来进行 eviction。
8.HPA scaling based on container resources
支持基于容器级别资源来进行 autoscaling,原因是目前单个 Pod 中可能存在以下特殊场景:
多个容器有不同的资源阈值;
有多个容器,但是 autoscaling 只基于单个容器的资源阈值。
这个设计文档主要是考虑如何实现,列出了四种方法以及他们的优缺点,四种方法分别是直接使用 K8s 的定义,直接放到环境变量,使用 annotation 描述,使用 Knative 自定义的描述。
Istio Networking 工作组的最新讨论结果,决定从 Istio1.6 之后移除 Galley:Galley 原有的职责验证(validation)和状态控制器(status controllers)已经合并到 Istiod,而 Galley 剩余的职责 MCP Source 将被直接删除。备注:MCP 功能还存在,Istiod 保留有 MCP sync 的角色。
开源项目推荐
1.BotKube
BotKube 是一个监控 Kubernetes 集群并提供告警服务的应用,支持推送消息至 Slack,Mattermost 以及 ElasticSearch。它通过规则过滤 Kubernetes 事件并进行定向报警。另外还提供对当前集群中的资源做一些固定的 YAML 检查。
PrometheusAlert 是一个运维告警中心消息转发系统,支持主流的监控系统 Prometheus , Zabbix , 日志系统 Graylog 和数据可视化系统 Grafana 发出的预警消息,支持钉钉等各种主流告警方式。
一个高性能、云原生的分布式 SQL 数据库,适用于云原生 OLTP 应用,具有较高的拓展性、容错性以及支持异地容灾。
本周阅读推荐
1.《How to detect outdated Kubernetes APIs》
随着 Kubernetes 版本迭代,有一部分 API 被逐渐 deprecate 。这篇文章介绍了如何用 Deprek8 ,一个基于 Open Policy Agent 规则的工具,对你仓库中的 YAML 是否引用 deprecated API 进行检测。
2.《quality of service and oom in Kubernetes》
文章详细介绍了 Kubernetes 中的 QoS 机制,并介绍了 OOM 发生后,Linux Kill 进程的过程以及 Kubernetes 如何 evict Pod。
3.《A primer: Continuous Integration and Continuous Delivery (CI/CD) 》
文章深入探讨了 CI/CD 的关键点,包括版本控制、开发分支与模式、发布流水线以及自动化测试等。
4.《Kubernetes 1.18 Feature Server-side Apply Beta2》
介绍了 Kubernetes 1.18 中在 Server-side Apply 上新增的特性。1.18 中增加了 managedFields,所有 server-side apply 都被记录在 mangedFields 中,包括修改的字段、修改时间以及修改人。
相关阅读
云原生生态周报 Vol. 44:Gartner 发布容器公有云竞争格局报告
云原生生态周报 Vol. 43:K8s 1.18 正式 release
云原生生态周报 Vol. 42:GitHub 宣布正式收购 npm
云原生生态周报 Vol. 41: CNCF 2019 年度报告重磅发布
云原生生态周报 Vol. 40:API Server 负载均衡问题被解决
云原生生态周报 Vol. 39:Golang 1.14 发布
云原生生态周报 Vol. 38:Apache Flink 1.10.0 发布
云原生生态周报 Vol. 37:国内首个 Kubernetes SIG-Cloud-Provider 子项目揭秘
云原生生态周报 Vol. 36:CNCF 公布 2020 年 TOC 选举结果
云原生生态周报 Vol. 35:Falco 进入 CNCF Incubator 项目
云原生生态周报 Vol. 34:VMware 完成 27 亿美元的 Pivotal 收购
云原生生态周报 Vol. 33:CNCF 宣布 TUF 毕业
云原生生态周报 Vol. 32:Istio 1.5 版本开发中
云原生生态周报 Vol. 31:Kubernetes v1.17 版本解读
云原生生态周报 Vol. 30:Rancher 新版本默认支持 Kubernetes 1.16
云原生生态周报 Vol. 29:Kubernetes 拟支持 Cgroup v2
云原生生态周报 Vol. 28:Mirantis 收购 Docker 企业业务
云原生生态周报 Vol. 26:2019 年容器生态统计报告发布
云原生生态周报 Vol. 25:Canonical 开源 MicroK8
云原生生态周报 Vol. 24:Ubuntu 19.10 发布
云原生生态周报 Vol. 23:全球首个开放应用模型 OAM 开源
云原生生态周报 Vol. 22:Knative 暂时不会捐给任何基金会
云原生生态周报 Vol. 21:Traefik 2.0 正式发布
云原生生态周报 Vol. 20:Kubernetes v1.16 发布
云原生生态周报 Vol. 19:Helm 推荐用户转向 V3
云原生生态周报 Vol. 18:独家解读 etcd 3.4 新特性
云原生生态周报 Vol. 17 :Helm 3 发布首个 beta 版本
云原生生态周报 Vol. 16:CNCF 归档 rkt,容器运行时“上古”之战老兵凋零
云原生生态周报 Vol. 13 | Forrester 发布企业级容器平台报告
云原生生态周报 Vol. 12 |K8s 1.16 API 重大变更
云原生生态周报 Vol. 11 | K8s 1.16 早知道
云原生生态周报 Vol. 10 | 数据库能否运行在 K8s 当中?
云原生生态周报 Vol. 9 | K8s 1.15 后的性能提升
云原生生态周报 Vol. 8 | Gartner 发布云原生趋势
云原生生态周报 Vol. 7 | Docker 再爆 CVE
云原生生态周报 Vol. 6 | KubeCon EU 亮点汇总
云原生生态周报 Vol.4 | Twitter 从 Mesos 全面转向 Kubernetes
云原生生态周报 Vol. 3 | Docker Hub 遭入侵,Java 8 开始提供良好的容器支持
云原生生态周报 Vol. 2 | Godaddy 开源 KES、CNCF 提供免费云原生课程
云原生生态周报 Vol. 1 | Google 发布 Cloud Run,开源项目 Kubecost 让 K8s 花费一目了然
本文转载自阿里巴巴云原生微信公众号(ID:Alicloudnative)。
评论