AICon日程100%就绪,9折倒计时最后一周 了解详情
写点什么

云原生生态周报 Vol. 17 :Helm 3 发布首个 beta 版本

  • 2019-09-03
  • 本文字数:3537 字

    阅读完需:约 12 分钟

云原生生态周报 Vol. 17 :Helm 3 发布首个 beta 版本

前言

《云原生生态周报》由阿里云容器平台联合蚂蚁金服共同发布,每周一期。众多一线社区专家与您一起“跟踪动态,读懂社区”,分享云原生社区项目进展、活动发布、精选博客等信息。以下是第十七期云原生生态周报的内容。

业界要闻

  1. Helm 3 第一个 beta 版本 v3.0.0-beta.1 发布,该版本的重点是完成最后的修改和重构,以及移植其他 Helm 2 特性。

  2. https://github.com/helm/helm/releases

  3. cilium 1.6 版本发布,完成了最后的两个核心需求,宣布已经可以 100% 替换 kube-proxy。

  4. https://cilium.io/blog/2019/08/20/cilium-16/

  5. cilium 是一个基于 eBPF 实现的可用于提供容器网络连接和负载均衡的组件,不依赖 K-V store,以下是 cilium 的性能测试结果。



3 pivotal 开源了镜像构建和更新的 controller - kpack。


https://github.com/pivotal/kpack

上游重要进展

Kubernetes 项目

1 apiserver 对 observed requests 进行更细致的分类, 对 requests 增加优先级。目前 apiserver 有比较简单的机制去防止过载,例如用 max-in-flight 去限制 mutating 和 readonly 的请求,但是除了这两类请求外,还有一些其他类型的请求可以去做不同的限制。这个 KEP 希望把 apiserver 收到的 request 按优先级等级进行分类,每个 request 分配到它对应的 concurrency pool,这样不同优先级的请求就可以做到不同的请求上限限制。作者在 KEP 里列举了一些目前在 1.16 中观察到的 requests


2 为 HA master 增加 StorageVersion API。HA master 在 roling upgrade 时,每一个 apiserver 可能会用不同的 storage version 去 encode resource。如果集群中有 storage version migrator,则会错误导致 storage migrator 升级 resource storage version 到不同的版本。增加了一个 StorageVersion API 在这种场景下会告诉 migrator,当前 HA 集群对 storage version 未达成一致,migrator 会阻塞 migrate 的进行。


3 scheduling framework:为 kubernetes scheduler 设计的插件式的架构,让调度特性以插件的形式加入 scheduler(将在 1.17 进行 beta)。https://github.com/kubernetes/enhancements/issues/624 (KEP 比较早)。随着调度特性越来越多,scheduler 的代码越来越庞大,维护日益复杂,同时定制 scheduler 的开销也比较大。于是社区希望将 scheduler 做成一个 scheduling framework 的架构,让其他的调度特性以插件形式注册到 scheduler,对调度器的拓展也更加灵活。



4 其他更新


etcd 项目

  1. mvcc: 调整默认的 compact batch 为 1000,compact batch interval 为 10ms。compact batch 影响 compact 的速度,过大的 compact batch 会导致 put/range 的性能下降,过小的 compact batch 又 compact 不了太多的 key。在集团内部,我们把这两个参数设置为可变,不同的集群根据 qps 进行压测调节到最优参数。

  2. raft:允许 learner 在特殊情况下进行投票。存在这样的场景:集群 id=1 是 learner,id=2 是 voter,id=3 是 voter,然后通过客户端将 learner promote 成 voter,但是因为网络分区等原因,消息还没传到 learner,但是此时 id=2 的 voter 挂了,那么 id=3 voter 则直接获得了选举胜利。实际上此时 learner 已经 promote 成 voter 了,还需要 id=1 的 voter 进行投票。该 PR 修复了这个场景,允许 learner 收到投票,当 learner 收到投票时,表明其他 quorum 将自己视为一个 voter 了。

knative 项目

  1. serving 和 eventing 在功能和稳定性相对平稳后,开始进入性能优化阶段,开始进行 benchmark,包括

  2. deployment benchmark

  3. activator + throttler 的 开启Throttler关闭Throttler

  4. eventing 开始制定测试方案,包括收集响应延迟结果和标准的集群跑测试用例

  5. eventing 将 channel和subscriptions 转移到 messaging.knative.dev API Group。表明 Channel 和 Subscription 的概念是消息的路由而不是事件的转发,涉及到如何迁移现存业务,改动较大。

开源项目推荐

  1. microk8s,体积小,运行速度快,single-package 的 k8s 版本,适合用于做 k8s 的离线开发,IOT 和边缘设备。

  2. https://github.com/ubuntu/microk8s

  3. microk8s 紧跟上游 k8s 的 feature,刚刚 release 了 1.16-beta,同时它包含了主流 k8s 生态的其他工具,包括 serverless(knative),service mesh(istio),monitoring(prometheus,grafana),machine learning(kubeflow)

  4. qlkube,Kubernetes 的 GraphQL API,允许你使用 graphql 与 Kubernetes api 进行交互。

  5. https://github.com/qlkube/qlkube?utm_sq=g5n76aa1mt

  6. GraphQL 是 Facebook2015 年开源的数据查询规范。对于现在大多数的 RESTful API,都存在以下场景,client 需要向 server 发若干个请求才能获得所需要查询的内容。GraphQL 则希望让 API 数据间以图的形式,有关联和层次结构进行组织。

  7. qlkube 是利用 kubernetes 的 openapi/swagger api specification 自动生成的 GranphQL 接口。

  8. kube-fzf,利用 kubectl 和 fzf 搭建的支持模糊搜索的命令行工具。

  9. https://github.com/thecasualcoder/kube-fzf

  10. fzf (fuzzy finder)是一个非常丰富的命令行模糊搜索器,而 kube-fzf 把两个命令行工具结合,减少了 kubernetes 日常运维时敲的大量 kubectl get po xxx -n xxxxx 的命令复杂度。目前支持搜索 pod,tail pod container,describe pod,exec into a pod,port forward pod。

本周阅读推荐

1.The State of State in Cloud Native Applications..在云原生应用中,有状态应用的状态处理和发展过程以及未来走向。


2.How Kubernetes Could Orchestrate Machine Learning Pipelines. 在过去几年,Apache YARN 和 Mesos 往往是 data science 类型的 job(尤其是 machine learning)首选的资源调度器,而随着 Kubernetes 在社区的火爆,在 Kubernetes 上允许 big data 或 analytics job 的用户越来越多。文章介绍了如何使用 kubeflow pipeline 进行 ML 训练,以及 MLOps 的设计。


3.Kubernetes Web UIs in 2019. 社区有非常多 kubernetes Web UI 的项目,作者提出他自己对 kubernetes UI 的期望,并对所有开源项目做了一个总结。


4.深度解读Helm 3: 犹抱琵琶半遮面。自去年年初开始放风 Helm v3 将要开始开发,就被一堆人追问到底啥时候发版本。Helm v3 在五月发布了第一个 alpha 版本,如今发布了 beta 版本,本文是一篇旧文解读 Helm v3 aplha,但是绝对是一篇有助于理解 Helm V3 的好文章。


5.Knative Eventing 之 Choice 介绍,从 Knative Eventing 0.8 开始,支持根据不同的过滤条件对事件进行选择处理。通过 Choice 提供了这样的能力。本文旨在介绍一下 Choice 特性。


6.Service Mesh发展趋势(续):棋到中盘路往何方: 继续探讨 ServiceMesh 发展趋势,以灵魂拷问的方式深度分析 Istio 的重大革新 Mixer v2,Envoy 支持 Web Assembly 的意义所在; 深入介绍 Google Traffic Director 对虚拟机模式的创新支持方式,以及最近围绕 SMI 发生的故事。


名词解释:KEP - Kubernetes Enhancement Proposal, 即 Kubernetes 上游设计文档


本周报由阿里巴巴容器平台联合蚂蚁金服共同发布


本周作者:墨封,衷源,敖小剑


责任编辑:木环


相关阅读


云原生生态周报 Vol. 16:CNCF 归档 rkt,容器运行时“上古”之战老兵凋零


云原生生态周报 Vol. 15:K8s 安全审计报告发布


云原生生态周报 Vol. 14:K8s CVE 修复指南


云原生生态周报 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. 5 | etcd 性能知多少


云原生生态周报 Vol.4 | Twitter 从 Mesos 全面转向 Kubernetes


云原生生态周报 Vol. 3 | Docker Hub 遭入侵,Java 8 开始提供良好的容器支持


云原生生态周报 Vol. 2 | Godaddy 开源 KES、CNCF 提供免费云原生课程


云原生生态周报 Vol. 1 | Google 发布 Cloud Run,开源项目 Kubecost 让 K8s 花费一目了然


2019-09-03 11:575477

评论

发布
暂无评论
发现更多内容

架构师训练营第 1 期 - 第七周总结

Todd-Lee

极客大学架构师训练营

Spring+多线程+集合+MVC+数据结构算法 +MyBatis源码学习笔记分享

Java架构之路

Java 程序员 架构 面试 编程语言

GitHub上最火的SpringCloud微服务商城系统项目,附全套教程

Java架构之路

Java 程序员 架构 面试 编程语言

Fedora32安装和卸载openjdk11

ilovealt

Linux Openjdk

一站式接口测试服务体系建设

DrawDe朱

接口自动化 自动化测试平台

全链路压测在信用卡行业的实践

DrawDe朱

全链路压测

一定要偷偷学,偷偷进步!腾讯内部首发Java多线程、高并发、设计模式“满级”笔记

Java架构追梦

Java 架构 面试 设计模式 多线程与高并发

第二章课后习题

博博

第15周作业

Vincent

极客时间 极客大学

第7周总结

alpha

极客大学架构师训练营

三、设计模式

Geek_28b526

爆火!阿里P9用500多页手册搞定双十一高并发秒杀系统,绝了

996小迁

Java 架构 面试 高并发 秒杀系统

读完Java名著《Effective Java》: 我整理了这50条技巧

Java架构之路

Java 程序员 架构 面试 编程语言

架构师训练营 1 期第 7 周:性能优化(一)- 总结

piercebn

极客大学架构师训练营

Week3 - 代码重构

evildracula

学习 架构

工作1-3年的程序员,应该具备怎么样的技术能力?该如何提升?

Java架构师迁哥

Java键值对排序

ilovealt

Java

Spring Data Jpa deleteAll大概了解

ilovealt

Java jpa

囚徒困境:跳脱思维的牢笼

多元思维力-晓陶

认知 思维 多元思维力

「架构师训练营」第 3周作业

小黄鱼

极客大学架构师训练营

第二章学习笔记

博博

架构师训练营第三周作业

邢永春

LeetCode题解:231. 2的幂,位运算取二进制中最右边的1,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

架构师训练营 1 期第 7 周:性能优化(一)- 作业

piercebn

极客大学架构师训练营

单例模式样例

jorden wang

week3 代码重构 学习总结

杨斌

查漏补缺:166个最常用的Linux命令,哪些你还不知道?

小Q

Java Linux 程序员 操作系统 开发

架构师训练营第 1 期 - 第七周作业

Todd-Lee

极客大学架构师训练营

目标检测之YOLOv2

Dreamer

Java核心基础——反射

老农小江

Java 基础

Netty源码解析 -- PoolChunk实现原理

binecy

源码 Netty 内存布局

云原生生态周报 Vol. 17 :Helm 3 发布首个 beta 版本_服务革新_墨封_InfoQ精选文章