云原生生态周报 Vol. 9 | K8s 1.15 后的性能提升

简介: 业界要闻Helm这款包管理工具,作为业界Kubernetes上应用分发的事实标准,其 v3.0.0-alpha.1正式发布,这是Helm 3的第一个Alpha版本。(https://github.com/helm/helm/releases/tag/v3.0.0-alpha.1),标志着 Tiller 这个 Server 端组件正式从 Helm 体系中谢幕Talos发布。

业界要闻

  1. Helm这款包管理工具,作为业界Kubernetes上应用分发的事实标准,其 v3.0.0-alpha.1正式发布,这是Helm 3的第一个Alpha版本。(https://github.com/helm/helm/releases/tag/v3.0.0-alpha.1),标志着 Tiller 这个 Server 端组件正式从 Helm 体系中谢幕
  2. Talos发布。Talos是一款专门用于部署Kubernetes的操作系统。相对于CoreOS,RancherOS或者LinuxKit这些容器操作系统,Talos更为精简。但是由于去除了ssh等基础工具,这对于Ansible等基于ssh的Kubernetes部署工具影响巨大。(https://github.com/talos-systems/talos)
  3. Google推出深度学习容器,这是一种用于部署和测试利用机器学习应用与服务的优化环境。Beta 版本的深度学习容器可在云与本地工作,从而使得在本地或云中进行开发或原型设计成为可能。此外,该容器还能直接访问 CUDA、cuDNN、NCCL工具,支持 PyTorch、TensorFlow 2.0 和 TensorFlow 1.13框架。(https://cloud.google.com/blog/products/ai-machine-learning/introducing-deep-learning-containers-consistent-and-portable-environments

上游重要进展

Kubernetes 项目性能提升

  1. 大规模场景下一定要 Cherry Pick 的几个特性:

  2. client-go 会把 List/Watch 超时设置为 [5min, 10min),即在超时时间后会重新发起 List/Watch,建议 Daemenset 调整这个时间到几十分钟甚至数小时级别,不然 Apiserver 可能会因为大量访问崩溃。同时,也在考虑 kubelet 是否也要修改这个值,代码的注释里写着 5min 是为了平衡负载均衡以及解除负载均衡设备 watch 的hang住 bug。
  3. client-go RateLimiter 加入 Wait 方法,避免在异步场景下使用 client-go 引起 goruntine 积压:https://github.com/kubernetes/kubernetes/pull/79375
  4. Webhook 和 Adimission 支持 context-aware,在这个修复之前,Webhook 和 Admission 的性能也可能引起 Apiserver goruntine 积压从而影响 Apiserver 性能: https://github.com/kubernetes/kubernetes/pull/79376
  5. Kube-Apiserver 到达 IO 瓶颈时,metric 错误的将 IO 瓶颈错误归类到 504。我们需要将逻辑处理超时和写 IO 超时分开:https://github.com/kubernetes/kubernetes/pull/79609

Kubernetes 可靠性和稳定性

  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/78170

Knative 项目

  1. knative-eventing 0.7.0 发布,主要特性是:重构channel,为每个 Channel 单独创建了CRD资源;支持事件顺序处理(Sequence);在 Channel, Subscription, Broker, 以及 Trigger 中增强注释信息;事件追踪支持;事件源增强。详细说明请见 knative-eventing 0.7.0解读文章
  2. knative-serving 0.7.0 发布,主要特性是:发布 serving.knative.dev/v1beta1 api ;HPA支持根据并发请求指标扩缩容;切换到非root用户容器;详细说明请见 knative serving 0.7.0 版本变更。
  3. 讨论serving是否支持异步请求:要求请求后马上返回,另外可以根据id查询状态,当前还没有结论。从这个需求讨论可以看出serving在扩大自己的场景,不满足只做ping-pong式的处理。支持异步请求可以用在以下的场景
  • Long-running jobs
      • Notifications (e.g. mobile push notification, SMS notification, mass emails, etc)
      • Database migrations
    • Batch processing (e.g. data transformation)
    • Stream processing
    • Highly parallel jobs (document, image, … processing)
    • Fan-out workloads
    • Serveless Operator
  1. 期望在缩容的时候,由autoscaler来决定删除哪些pod。例如在scale-down时,各个pod的负载不平衡,这个时候希望能挑选sale-down代价最小的pod。serving-revision使用K8-deployment,如果不更换实现方式,需要k8底层支持,k8也有相关的讨论

本周阅读推荐

  1. Cloud 2.0:代码不再为王,Serverless 当道!》 这一篇不错的“务虚”文档,可以从技术演进的视角去思考云时代的技术演进。
  2. 《微服务架构之「 监控系统 」》 ,这篇文档详细且完整的描述了微服务架构下的监控系统。用户可以根据此文档对微服务的解决方案进行入门级的了解。
  3. 《Knative 核心概念介绍:Build、Serving和Eventing 三大核心组件》,面对火热的Serverless项目Knative,这篇文章对Knative的基础概念进行了精确的概括总结。

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

本周作者:心贵、莫源、元毅、衷源、张磊
责任编辑:涂南、木环


前期周报回顾
云原生生态周报 Vol. 8 | Gartner 发布云原生趋势
云原生生态周报 Vol. 7 | Docker 再爆 CVE
云原生生态周报 Vol. 6 | KubeCon EU 特刊
云原生生态周报 Vol. 5 | etcd性能知多少
云原生生态周报 Vol. 4 | Twitter 走向 K8s
云原生生态周报 Vol. 3 | Java 8 ️️ Docker

ACK_

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
3月前
|
Kubernetes Cloud Native 调度
云原生技术专题 | 云原生容器编排问题盘点,总结分享年度使用Kubernetes的坑和陷阱
随着云原生的兴起,越来越多的应用选择基于Kubernetes进行部署,可以说Kubernetes 是最流行的容器编排和部署平台。它的强大功能特性,可以保障在生产中可靠地运行容器化应用程序,相关的DevOps等工具也应运而生,下面就是小编简单化了一个Kubernetes的逻辑架构图。
327 9
云原生技术专题 | 云原生容器编排问题盘点,总结分享年度使用Kubernetes的坑和陷阱
|
11天前
|
Kubernetes 监控 Cloud Native
构建高效云原生应用:基于Kubernetes的微服务治理实践
【4月更文挑战第13天】 在当今数字化转型的浪潮中,企业纷纷将目光投向了云原生技术以支持其业务敏捷性和可扩展性。本文深入探讨了利用Kubernetes作为容器编排平台,实现微服务架构的有效治理,旨在为开发者和运维团队提供一套优化策略,以确保云原生应用的高性能和稳定性。通过分析微服务设计原则、Kubernetes的核心组件以及实际案例,本文揭示了在多变的业务需求下,如何确保系统的高可用性、弹性和安全性。
16 4
|
24天前
|
运维 Cloud Native 云计算
云原生技术:构建灵活高效的应用生态
随着云计算技术的不断发展,云原生技术作为一种全新的应用开发和部署模式,正逐渐成为业界关注的焦点。本文将介绍云原生技术的基本概念、优势以及在构建灵活高效的应用生态方面的应用实践,以期为读者提供全面了解云原生技术的视角。
|
1月前
|
Kubernetes Cloud Native Docker
【云原生】kubeadm快速搭建K8s集群Kubernetes1.19.0
Kubernetes 是一个开源平台,用于管理容器化工作负载和服务,提供声明式配置和自动化。源自 Google 的大规模运维经验,它拥有广泛的生态支持。本文档详细介绍了 Kubernetes 集群的搭建过程,包括服务器配置、Docker 和 Kubernetes 组件的安装,以及 Master 和 Node 的部署。此外,还提到了使用 Calico 作为 CNI 网络插件,并提供了集群功能的测试步骤。
219 0
|
1月前
|
Kubernetes Cloud Native Devops
云原生技术落地实现之二KubeSphere DevOps 系统在 Kubernetes 集群上实现springboot项目的自动部署和管理 CI/CD (2/2)
云原生技术落地实现之二KubeSphere DevOps 系统在 Kubernetes 集群上实现springboot项目的自动部署和管理 CI/CD (2/2)
51 1
|
1月前
|
弹性计算 运维 Kubernetes
云原生K8S场景自动化响应ECS系统事件
客户云原生K8S场景下,通过社区开源NPD+Draino+Autoscaler零开发,对接响应ECS主动运维事件,通过自动响应事件减少非预期宕机。
|
1月前
|
Cloud Native Java Docker
【Spring云原生】Spring官宣,干掉原生JVM,推出 Spring Native!整体提升性能!Native镜像技术在Spring中的应用
【Spring云原生】Spring官宣,干掉原生JVM,推出 Spring Native!整体提升性能!Native镜像技术在Spring中的应用
|
1月前
|
供应链 Cloud Native 安全
云原生时代下,操作系统生态的挑战与机遇
人工智能、大数据、云计算等新技术的发展也对操作系统的灵活度和智能化提出新的要求。
|
3月前
|
Kubernetes Cloud Native 网络协议
【云原生】Kubernetes介绍
【云原生】Kubernetes介绍
38 1
|
3月前
|
人工智能 Cloud Native PyTorch
阿里云 ACK 云原生 AI 套件中的分布式弹性训练实践
阿里云 ACK 云原生 AI 套件中的分布式弹性训练实践
148654 4

推荐镜像

更多