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

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 业界要闻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_

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
6月前
|
Kubernetes Cloud Native 容器
完全免费的K8S学习平台:在线集群环境助力你的云原生之路!
完全免费的K8S学习平台:在线集群环境助力你的云原生之路!
998 1
|
1月前
|
Kubernetes 安全 Cloud Native
云上攻防-云原生篇&K8s安全-Kubelet未授权访问、API Server未授权访问
本文介绍了云原生环境下Kubernetes集群的安全问题及攻击方法。首先概述了云环境下的新型攻击路径,如通过虚拟机攻击云管理平台、容器逃逸控制宿主机等。接着详细解释了Kubernetes集群架构,并列举了常见组件的默认端口及其安全隐患。文章通过具体案例演示了API Server 8080和6443端口未授权访问的攻击过程,以及Kubelet 10250端口未授权访问的利用方法,展示了如何通过这些漏洞实现权限提升和横向渗透。
150 0
云上攻防-云原生篇&K8s安全-Kubelet未授权访问、API Server未授权访问
|
3月前
|
存储 Kubernetes Cloud Native
揭秘K8s宇宙:56个知识点链接,引领你穿越云原生迷宫!
【8月更文挑战第8天】在容器化与微服务时代,Kubernetes (K8s) 成为行业标准,其强大功能使它成为现代软件部署的核心。本文旨在为初学者提供K8s全面知识图谱及56个知识点链接,覆盖基础概念如Pod、Node、Deployment和服务;网络配置如Ingress与服务类型;存储管理及资源限制;高级特性如自动扩缩容和蓝绿部署等。通过实例代码,帮助读者快速掌握K8s核心概念与操作,鼓励实践中学习,构建高效应用。
63 0
|
6月前
|
自然语言处理 监控 Cloud Native
对话阿里云云原生产品负责人李国强:推进可观测产品与OpenTelemetry开源生态全面融合
阿里云宣布多款可观测产品全面升级,其中,应用实时监控服务 ARMS 在业内率先推进了与 OpenTelemetry 开源生态的全面融合,极大丰富了可观测的数据类型及规模,大幅增强了 ARMS 核心能力。本次阿里云 ARMS 产品全面升级的背景是什么?为什么会产生围绕 OpenTelemetry 进行产品演进的核心策略?在云原生、大模型等新型应用架构类型层出不穷的今天,又将如何为企业解决新的挑战?阿里云云原生应用平台产品负责人李国强接受采访解答了这些疑问,点击本文走进全新升级的阿里云可观测产品。
42027 13
|
5月前
|
存储 Kubernetes 安全
云上攻防-云原生篇&K8s安全&Config泄漏&Etcd存储&Dashboard鉴权&Proxy暴露
云上攻防-云原生篇&K8s安全&Config泄漏&Etcd存储&Dashboard鉴权&Proxy暴露
126 5
|
5月前
|
Kubernetes 安全 Cloud Native
云上攻防-云原生篇&Kubernetes&K8s安全&API&Kubelet未授权访问&容器执行
云上攻防-云原生篇&Kubernetes&K8s安全&API&Kubelet未授权访问&容器执行
130 3
|
4月前
|
消息中间件 监控 Cloud Native
阿里云云原生生态强调事件驱动架构(EDA),借助EventBridge和EventMesh实现微服务间的高效协作。
【7月更文挑战第3天】阿里云云原生生态强调事件驱动架构(EDA),借助EventBridge和EventMesh实现微服务间的高效协作。EDA提升系统弹性和可维护性,促进业务敏捷性。实施路径包括事件模型设计、集成阿里云服务、开发事件处理器和监控优化。通过阿里云服务,开发者能轻松构建响应式、可扩展的云原生应用,加速创新并驱动数字化转型。
95 0
|
5月前
|
运维 Kubernetes Cloud Native
Canonical 开源 MicroK8 | 云原生生态周报 Vol. 25
Canonical 开源 MicroK8 | 云原生生态周报 Vol. 25
|
5月前
|
Kubernetes Cloud Native Shell
云原生 - K8s命令合集
云原生 - K8s命令合集
65 0
|
6月前
|
消息中间件 监控 Cloud Native
【阿里云云原生专栏】事件驱动架构在阿里云云原生生态中的角色与实施路径
【5月更文挑战第23天】本文探讨了事件驱动架构在阿里云云原生生态中的关键作用,强调其在微服务协同和应用创新中的效率提升。阿里云提供了EventBridge和EventMesh等服务支持EDA,其中EventBridge作为事件中枢,实现跨平台事件传递,而EventMesh提供高性能事件处理。通过事件模型设计、服务集成、开发处理器和监控优化四个步骤,用户可在阿里云上实施事件驱动架构,构建敏捷响应的云原生应用。随着云原生技术发展,EDA将成为企业数字化转型的重要推动力。
116 0