云原生生态周报 Vol.9| K8s v1.15 版本发布

本周做者 | 衷源、心贵node

业界要闻

一、Kubernetes Release v1.15 版本发布,新版本的两个主题是持续性改进和可扩展性。(https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.15.md#kubernetes-v115-release-notesgit

二、Helm 这款包管理工具, 做为业界 Kubernetes 上应用分发的事实标准,其 v3.0.0-alpha.1 正式发布,这是 Helm 3 的第一个  Alpha 版本。 (https://github.com/helm/helm/releases/tag/v3.0.0-alpha.1github

三、Google 的 Dropout 专利生效,有效期 15 年。Dropout 是深度学习的一种基础算法,对人工智能行业影响巨大。web

四、Rancher 2.3 Preview 发布,经过一个简单以及友好的界面,用户便可使用 istio。(https://github.com/rancher/rancher/releases/tag/v2.3.0-alpha5)算法

五、Talos 发布。Talos 是一款专门用于部署Kubernetes的操做系统。相对于 CoreOS,RancherOS 或者 LinuxKit 这些容器操做系统,Talos 更为精简。(https://github.com/talos-systems/talos) 六、 Google 推出深度学习容器,包括 TensorFlow 1.13,TensorFlow 2.0,PyTorch 和 R 语言容器。api

上游重要进展

Kubernetes v1.15 版本发布

Kubernetes Release v1.15 版本,新版本的两个主题是持续性改进和可扩展性。其中持续性改进着重于提升核心组件的可靠性和稳定性,同时修复一些遗留的问题;而可扩展性关注着重关注在 CRD 和 Webhook 的改进和优化上。咱们就这两个主题讲述一些值得关注的特性和改进。v1.15 版本的发布意味着不只咱们能够更加便捷的管理集群和扩展集群,同时新版本的集群的稳定性更加坚固。架构

  • 可靠性和稳定性
    1. 新引入 WatchBookmark 特性。该特性能大大提升 Kube-Apiserver 的 List/Watch 性能,你们都知道,大规模集群下各个组件的 List/Watch 会消耗 Kube-Apiserver 巨大的性能开销,有了该特性,咱们能够展望将来的集群规模又能够上升一个台阶。 (#74074@wojtek-t)
    2. Admission 默认开启 StorageObjectInUseProtection。StorageObjectInUseProtection 能保护正在使用的 PV/PVC 被误删除。这对手速太快的开发和 SRE 同窗是一个很大的福音。(#74610@oomichi)
    3. 蚂蚁金服在大规模实践中,发现 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/78170app

  • CRD 可扩展性和实用性加强负载均衡

    1. 增长 CustomResourcePublishOpenAPI 特性,新版本会使用 OpenAPI v3 schemas 作 CRD 实例的校验,同时咱们能够作 CRD 的Prune 和 默认值设置等,同时后续咱们可能依赖 OpenAPI 作 CRD 的 Protobuf 支持。(#77825@roycaihw)
    2. 新的 Prune 特性会默认移除 CRD 实例未知的字段,同时也不会将未知字段持久化,这会大大减小 CRD 实例未知字段带来的干扰以及下降 CRD 的存储开销同时提升性能。
    3. 支持使用 OpenAPI 校验来设置 CRD 实例的默认值。经过这种更加轻量级的方式,开发者没必要费劲脑力和时间去再写一个 Webhook 监听 CRD 实例的建立去设置默认值了。(#77558@sttts)
    4. 增长 CRD Conversion Webhook 支持多版本 CRD 实例之间的转换。以前咱们的 CRD 版本升级(好比从 v1alpha1 升级到 v1betav1) 是个头疼的问题,使用这个功能咱们的版本转化能完美解决(KEP)。
  • Webhook 加强less

    1. Admission Webhook 的配置增长了 ObjectSelector。从以前的只能根据 NamespaceSelector 和指定资源进行过滤,到新版本的 Webhook 能对特定的 Label 的资源实例过滤,从而大大提升了 Webhook 的执行效率。
    2. Webhook 的配置容许一个 Webhook 的调用指向一个非 443 端口的服务。Webhook 包括 Admission webhook, AuditSink webhook, CRD Conversion webhook(还包括 kube-aggregator Service 的配置)。
    3. Admission Webhook的配置容许一个 Webhook 只注册和监听一个版本的资源,好比咱们能够只注册 apps/v1 deployments 而不关心其它的 deployment 版本的资源,这样咱们的 Webhook Server 不用随着 API 定义的升级去强行升级。

Kube-Apiserver 性能深刻研究

  1. 大规模场景下必定要 Port 的几个特性:
  2. 优化 Watch event 的 dispatch https://github.com/kubernetes/kubernetes/issues/73958
  3. NodeLease 功能: https://github.com/kubernetes/kubernetes/tree/master/pkg/kubelet/nodelease
  4. client-go 会把 List/Watch 超时设置为 [5min, 10min),即在超时时间后会从新发起 List/Watch,建议 Daemenset 调整这个时间到几十分钟甚至数小时级别,否则 Apiserver 可能会由于大量访问崩溃。同时,也在考虑 kubelet 是否也要修改这个值,代码的注释里写着 5min 是为了平衡负载均衡以及接触负载均衡设备 watch 的hang住 bug。
  5. client-go RateLimiter 加入 Wait 方法,避免在异步场景下使用 client-go 引发 goruntine 积压:https://github.com/kubernetes/kubernetes/pull/79375
  6. Webhook 和 Adimission 支持 context-aware: https://github.com/kubernetes/kubernetes/pull/79376
  7. Kube-Apiserver 到达 IO 瓶颈时,metric 错误的将 IO 瓶颈错误归类到 504。咱们须要将逻辑处理超时和写 IO 超时分开:https://github.com/kubernetes/kubernetes/pull/79609

开源项目推荐

  1. Tektoncd: 云原生时代的 Pipeline, https://github.com/tektoncd/pipeline
  2. 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

相关文章
相关标签/搜索