云原生生态周报 Vol.9| K8s v1.15 版本发布
本周作者 | 衷源、心贵
业界要闻
1、Kubernetes Release v1.15 版本发布,新版本的两个主题是持续性改进和可扩展性。(https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.15.md#kubernetes-v115-release-notes)
2、Helm 这款包管理工具, 作为业界 Kubernetes 上应用分发的事实标准,其 v3.0.0-alpha.1 正式发布,这是 Helm 3 的第一个 Alpha 版本。(https://github.com/helm/helm/releases/tag/v3.0.0-alpha.1)
3、Google 的 Dropout 专利生效,有效期 15 年。Dropout 是深度学习的一种基础算法,对人工智能行业影响巨大。
4、Rancher 2.3 Preview 发布,通过一个简单以及友好的界面,用户即可使用 istio。(https://github.com/rancher/rancher/releases/tag/v2.3.0-alpha5)
5、Talos 发布。Talos 是一款专门用于部署Kubernetes的操作系统。相对于 CoreOS,RancherOS 或者 LinuxKit 这些容器操作系统,Talos 更为精简。(https://github.com/talos-systems/talos)
6、 Google 推出深度学习容器,包括 TensorFlow 1.13,TensorFlow 2.0,PyTorch 和 R 语言容器。
上游重要进展
Kubernetes v1.15 版本发布
Kubernetes Release v1.15 版本,新版本的两个主题是持续性改进和可扩展性。其中持续性改进着重于提高核心组件的可靠性和稳定性,同时修复一些遗留的问题;而可扩展性关注着重关注在 CRD 和 Webhook 的改进和优化上。我们就这两个主题讲述一些值得关注的特性和改进。v1.15 版本的发布意味着不仅我们可以更加便捷的管理集群和扩展集群,同时新版本的集群的稳定性更加坚固。
- 可靠性和稳定性
- 新引入
WatchBookmark
特性。该特性能大大提高 Kube-Apiserver 的 List/Watch 性能,大家都知道,大规模集群下各个组件的 List/Watch 会消耗 Kube-Apiserver 巨大的性能开销,有了该特性,我们可以展望未来的集群规模又可以上升一个台阶。 (#74074, @wojtek-t) - Admission 默认开启 StorageObjectInUseProtection。StorageObjectInUseProtection 能保护正在使用的 PV/PVC 被误删除。这对手速太快的开发和 SRE 同学是一个很大的福音。(#74610, @oomichi)
- 蚂蚁金服在大规模实践中,发现 Daemonset 有各种发布和部署 Pod 被卡住的问题,蚂蚁同学对 Daemonset Controller 可能发生的一系列死锁问题做了修复。
- 新引入
参考:
https://github.com/kubernetes/kubernetes/pull/78974
https://github.com/kubernetes/kubernetes/pull/77773
https://github.com/kubernetes/kubernetes/pull/77208
https://github.com/kubernetes/kubernetes/pull/78170
CRD 可扩展性和实用性增强
- 增加 CustomResourcePublishOpenAPI 特性,新版本会使用 OpenAPI v3 schemas 做 CRD 实例的校验,同时我们可以做 CRD 的Prune 和 默认值设置等,同时后续我们可能依赖 OpenAPI 做 CRD 的 Protobuf 支持。(#77825, @roycaihw)
- 新的 Prune 特性会默认移除 CRD 实例未知的字段,同时也不会将未知字段持久化,这会大大减少 CRD 实例未知字段带来的干扰以及降低 CRD 的存储开销同时提高性能。
- 支持使用 OpenAPI 校验来设置 CRD 实例的默认值。通过这种更加轻量级的方式,开发者不必费劲脑力和时间去再写一个 Webhook 监听 CRD 实例的创建去设置默认值了。(#77558, @sttts)
- 增加 CRD Conversion Webhook 支持多版本 CRD 实例之间的转换。之前我们的 CRD 版本升级(比如从 v1alpha1 升级到 v1betav1) 是个头疼的问题,使用这个功能我们的版本转化能完美解决(KEP)。
Webhook 增强
- Admission Webhook 的配置增加了 ObjectSelector。从之前的只能根据 NamespaceSelector 和指定资源进行过滤,到新版本的 Webhook 能对特定的 Label 的资源实例过滤,从而大大提高了 Webhook 的执行效率。
- Webhook 的配置允许一个 Webhook 的调用指向一个非 443 端口的服务。Webhook 包括 Admission webhook, AuditSink webhook, CRD Conversion webhook(还包括 kube-aggregator Service 的配置)。
- Admission Webhook的配置允许一个 Webhook 只注册和监听一个版本的资源,比如我们可以只注册
apps/v1 deployments
而不关心其它的 deployment 版本的资源,这样我们的 Webhook Server 不用随着 API 定义的升级去强行升级。
Kube-Apiserver 性能深入研究
- 大规模场景下一定要 Port 的几个特性:
- 优化 Watch event 的 dispatch https://github.com/kubernetes/kubernetes/issues/73958
- NodeLease 功能: https://github.com/kubernetes/kubernetes/tree/master/pkg/kubelet/nodelease
- client-go 会把 List/Watch 超时设置为 [5min, 10min),即在超时时间后会重新发起 List/Watch,建议 Daemenset 调整这个时间到几十分钟甚至数小时级别,不然 Apiserver 可能会因为大量访问崩溃。同时,也在考虑 kubelet 是否也要修改这个值,代码的注释里写着 5min 是为了平衡负载均衡以及接触负载均衡设备 watch 的hang住 bug。
- client-go RateLimiter 加入 Wait 方法,避免在异步场景下使用 client-go 引起 goruntine 积压:https://github.com/kubernetes/kubernetes/pull/79375
- Webhook 和 Adimission 支持 context-aware: https://github.com/kubernetes/kubernetes/pull/79376
- Kube-Apiserver 到达 IO 瓶颈时,metric 错误的将 IO 瓶颈错误归类到 504。我们需要将逻辑处理超时和写 IO 超时分开:https://github.com/kubernetes/kubernetes/pull/79609
开源项目推荐
- Tektoncd: 云原生时代的 Pipeline, https://github.com/tektoncd/pipeline
- Volcano: Kubernetes 原生的 Job 批量调度扩展 https://github.com/volcano-sh/volcano
本周阅读推荐
《Cloud 2.0:代码不再为王,Serverless 当道!》
这一篇不错的务虚文档,可以从技术演进的视角去思考云时代的技术演进。
文章链接:
https://mp.weixin.qq.com/s/QzudayLEHg0TrJtJ30f9Vg
《微服务架构之「 监控系统 」》
这篇文档详细且完整的描述了微服务架构下的监控系统。用户可以根据此文档对微服务的解决方案进行入门级的了解。
文章链接:
https://mp.weixin.qq.com/s/xH1LX6iOJqKC5Y5IRsAhpQ
《云原生应用 Kubernetes 监控与弹性实践》
云原生应用的设计理念已经被越来越多的开发者接受与认可,而 Kubernetes 做为云原生的标准接口实现,已经成为了整个 stack 的中心,云服务的能力可以通过 Cloud Provider、CRD Controller、Operator 等等的方式从 Kubernetes 的标准接口向业务层透出。本文向大家介绍一个云原生应用该如何在 Kubernetes 中无缝集成监控和弹性能力。
文章链接:https://yq.aliyun.com/articles/704346
云原生生态周报 Vol.9| K8s v1.15 版本发布相关推荐
- 云原生生态周报 Vol. 14 | K8s CVE 修复指南
业界要闻 Mesosphere 公司正式更名为 D2IQ, 关注云原生. Mesosophere 公司日前发布官方声明正式更名为:D2iQ(Day-Two-I-Q),称关注点转向 Kubernetes ...
- 云原生生态周报 Vol. 11 | K8s 1.16 早知道
业界要闻 Pivotal 发布了完全基于 Kubernetes 的 Pivotal Application Service(PAS)预览版 这意味着 Pivotal 公司一直以来在持续运作的老牌 Pa ...
- 云原生生态周报 Vol. 12 | K8s 1.16 API 重大变更
本文作者:源三.临石.张磊.莫源 业界要闻 1. K8s 1.16 将废弃一系列旧的 API 版本 影响面涉及 NetworkPolicy.PodSecurityPolicy.DaemonSet, D ...
- Kubernetes v1.17 版本解读 | 云原生生态周报 Vol. 31
作者 | 徐迪.李传云.黄珂.汪萌海.张晓宇.何淋波 .陈有坤.李鹏 审核 | 陈俊 上游重要进展 1. Kubernetes v1.17 版本发布 功能稳定性是第一要务.v1.17 包含 22 个增 ...
- Google 宣布将 Istio 商标转移给 Open Usage Commons | 云原生生态周报 Vol. 57
作者 | 唐炳昌.丁海洋 业界要闻 Google 宣布将 Istio 商标转移给 Open Usage Commons Google 将 Istio 的商标转移到开放使用共享组织,以提供中立的商标监督 ...
- CNCF 公布 2020 年 TOC 选举结果 | 云原生生态周报 Vol. 36
作者 | 陈洁.高相林 业界要闻 CNCF TOC 2020 年选举结果公布 2020 年 2 月 3 日,CNCF 进行了 TOC(技术监督委员会)选举,确定了 5 名新增的 TOC 成员,其中 3 ...
- 云原生生态周报 Vol.10 | 数据库能否运行在 K8s 当中?
业界要闻 IBM 以总价 340 亿美元完成里程碑意义的红帽收购:这是这家拥有 107 年历史的公司史上规模最大的一笔收购,该收购金额在整个科技行业的并购史上也能排到前三.在当天公布的声明中,IBM ...
- K8s 文档增加反种族歧视声明 | 云原生生态周报 Vol. 54
作者 | 陈洁.高相林 业界要闻 Kubernetes 文档增加反种族歧视声明 所有 Kubernetes 相关的文档统一加上了反种族歧视的声明 Header,以表达社区坚决反对种族歧视的立场.此外, ...
- K8s 1.18 正式 release | 云原生生态周报 Vol. 43
作者 | 汪萌海. 王思宇 业界要闻 K8s 1.18 正式 release Kubernetes1.18 版本发布! 一些将对社区产生影响的新特性日渐完善,如 KSA(Kubernetes Serv ...
最新文章
- apache配置反向代理以及实现url重写,防盗链
- Mysql/Mairadb主从复制
- 1.1 Spring的整体架构--Spring源码深度解析
- AngularJS2 环境搭建:
- react动画库_React 2020动画库
- python读取git日志_Python获取gitlab提交历史!
- ‘git‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。
- uniapp本地开发小程序代码超过2M,不能预览和真机调试解决办法
- Windows7安装VC2015-2019_redist.x64提示“设置失败0xc8000222-未指定的错误”
- 人工智能标记语言AIML聊天机器人:产生、种类、应用、实例、AIML概述、知识库、公司、业界(20k字经典收藏版)
- 计算机课英语谐音,各科老师“谐音梗”大集合,英语课现“脏话”,数学化身段子手...
- 串口通信协议---UART
- hive数仓、数据中台数据核对的方法
- 7-11 超级玛丽 (10 分)
- 反馈学习方法:提高学习积极性
- Mac如何安装MySQL和Navicat
- o oia ospf 路由优先_OE1、OE2、ON1、ON2路由区别
- mysql 5.7 xbackup_mysql5.7备份
- GTP科普——简单入门资料
- Q245R(R-HIC)是什么材质Q245R(R-HIC)抗氢钢钢板简介化学成分
热门文章
- MySQL LEFT/RIGHT JOIN:外连接查询
- 8、如何将SQL语句映射为文件操作
- 1.11实例:保存图书信息
- Codeblocks配置EGE图形库
- 【PAT乙级】1047 编程团体赛 (20 分)
- 【PAT乙级】1042 字符统计 (20 分)
- MySQL中的数据分组
- latex 下划线_备战美赛!论文写作必备Latex排版教程之单词间隔、标题及交叉引用...
- 【SpringMVC 之应用篇】 1_SpringMVC入门 —— 第一个 Spring MVC 程序
- RNN的手写数字识别