速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

云原生生态周报 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:575488

评论

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

赤裸裸地监视,亚马逊的员工没有隐私

李忠良

28天写作

关于低代码的进一步思考

lidaobing

低代码 28天写作

认识产品经理(下)

让我思考一会儿

如何使用docsify搭建自己的github文档?

秦怀杂货店

GitHub Pages

Windows DHCP最佳实践(四)

BigYoung

运维 windows Windows Server 2012 R2 DHCP

【并发编程的艺术】JAVA 原子操作实现原理

程序员架构进阶

架构 JVM Java内存模型 28天写作

Dubbo中的统一契约是如何实现的?

冰河

分布式 微服务 dubbo 服务注册与发现 服务治理

朋友问他是否该跳槽了?我是这么跟他说的

田维常

面试

为什么Java程序会执行一段时间后跑的更快?

Java架构师迁哥

快乐的开始还是痛苦的开始?

Nydia

国内新能源车厂商的小白认知 (28天写作 Day14/28)

mtfelix

自动驾驶 28天写作 新能源汽车

项目管理系列(7)-PMO有啥用

Ian哥

28天写作

Dubbo源码解析(1)-整体框架介绍

冰三郎

源码分析 dubbo RPC

团队复盘之kiss

张老蔫

28天写作

Java内存模型(JMM)详解

Java 编程 面试

28天瞎写的第二百二十五天:通过打游戏维护客户关系的故事

树上

28天写作

​Infura - 共识问题

谢锐 | Frozen

Rebase Ethereum blockchain web3 hackers infura

重学JS | 一文看懂浏览器数据库IndexedDB详细操作

梁龙先森

大前端 编程语言 28天写作

soul数据同步(二)zookeeper同步策略

xzy

源码分析 网关 Soul网关 soul sou

做一枚旗帜Be a Flag

石君

28天写作

如果不完美,接受就好了「14/28」

道伟

28天写作

nodejs中使用worker_threads来创建新的线程

程序那些事

多线程 nodejs 并发控制 程序那些事 子线程

IT版“历史上的今天”

IT蜗壳-Tango

七日更

hive窗口函数/分析函数详细剖析

五分钟学大数据

Hive SQL

Django报错:"Key 'id' not found in 'xxx'. Choices are: xxx"

BigYoung

Python django

拥抱变化

阿萌

28天写作

2020我写了什么?

秦怀杂货店

编程 思考

大数据知识专栏 - MapReduce 的 Map端Join

小马哥

大数据 hadoop mapreduce 七日更

剖析一站式分布式事务方案SeataFescar-Server

比伯

Java 编程 架构 面试 计算机

简单易懂的单臂路由介绍及一看就会的实验

项目管理变更之关注要素变化

L3C老司机

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