云原生生态周报 Vol. 13 | Forrester 发布企业级容器平台报告

业界要闻

  1. 近日,全球知名市场调研机构 Forrester 发布首个企业级公共云容器平台报告其中,阿里云容器服务的市场表现全球前三、中国第一,同时创造中国企业最好成绩,进入强劲表现者象限。报告显示,阿里云容器服务市场表现为中国第一,与谷歌云并列全球第三。 Forrester 分析师认为:“阿里云容器服务提供了广泛的开发和应用服务支持能力,并且具备丰富的市场生态和合作伙伴体系,是企业在中国寻求完备容器云服务能力的最佳选择。”

云原生生态周报 Vol. 13 | Forrester 发布企业级容器平台报告

  1. Virtual Kubelet 开源项目发布第一个可商用 1.0 版本,本次发布的主要特点包括:
  • API 将趋于稳定;
  • 发布版不再提供二进制文件,用户可以自定义发行版;
  • 提供测试用的 CLI;
  • 非通用版的 Charts 也将从库中移除。

上游重要进展

Kubernetes 项目

  1. Kubernetes 设计增强提议(KEP):
  • Even Pods Spreading:这个设计提议通过 MaxSkew 算法来尽量均匀的调度 Pod 到目的节点,相关的PR(#77760、# 77828、# 79062、#79063);
  • 增强 DaemonSet 灰度能力:  新增 SurgingRollingUpdate,并在 RollingUpdate 和 SurgingRollingUpdate 中增加灰度升级的能力。
  1. Scheduler Framework 特性添加了 Filter 插件,Filter 插件用于过滤掉无法运行 Pod 的节点,可将所有现有的 predicates 函数转换为 Filter 插件。https://github.com/kubernetes/kubernetes/pull/78477

Knative 项目

  1. Importers 中事件类型命名空间该如何设置?GitHub 社区关于该问题展开了讨论,首先关于 Importer 中功能定位进行了确认。包括:
  • 针对事件生产者进行事件订阅及管理
  • 从事件生产者获取事件信息
  • 将事件转化成标准的 CloudEvent
  • 将事件发送到相应的 Sink

其中针对将事件转换成 CloudEvent 时,事件的类型的命名空间前缀需要进行修改。以 githhub 事件为例,当前转换成 CE(CloudEvent) 时,设置为 dev.knative.source.github._, 是否应该以事件生产者作为命名空间 com.github._,参考 CloudEvent 给出的映射处理:https://github.com/cloudevents/spec/blob/master/adapters/github.md

  • CloudEvent 事件属性过滤。针对 Cloud Event 中除了 data 之外的其它属性,都应该可以通过 Trigger 进行过滤;
  • 修改事件注册 Registry: 通过修改 eventtypes ,支持发现 Importer 事件类型,增强事件注册 Registry 机制。该方案进行了进一步的讨论,包括通过 eventTypesSupported 替换 eventTypes,这样表述更能让 end-user 清晰明白。
  • Make it easier to consume events directly from specific sources。针对事件源,优化用户使用场景本周确定了 Decision,预计会在 0.9 之后实现。大致方案是用户可以直接在 Eventype 以及 Trigger 中指定事件源进行创建,参考 Demo

Istio 项目

Istio 发布了 1.2.x 和 1.1.x 系列的最新版本 1.2.3 和 1.1.12,增强了在虚拟服务中定义基于正则表达式的 HTTP URI匹配时支持大小写的能力,这样用户可以定义出更加灵活的匹配路由规则。此外,Istio 在多集群管理方面也提供了 3 种不同方式:多个控制平面、同 VPC 网络下的单控制平面与多个 VPC 网络下的单控制平面。值得注意的是,这几种方式并不是互斥的,在一个大型多集群网格环境下,既可以多个集群共享一个控制平面,同时也可以与其他集群保持独立的控制平面。这种场景在混合云多云环境下比较常见,例如在阿里云 ACK 容器服务控制台中可以接入外部已有集群,并与 ACK 集群形成一个服务网格。

开源项目推荐

  1. IBM 推出的 Kabanero 项目它将基础开源技术整合到了一个微服务的框架中,包括 Knative、Istio 与 Tekton,还有 Appsody、Codewind 和 Razee,帮助用户构建、部署和管理基于 Kubernetes 的应用程序的生命周期。快速创建云原生的 App,目前支持多种语言。包括 nodeJS,Java,Swift 等。
  2. Kyverno,K8s Admission Controller 扩展项目它可以设置各种 policy 作为自定义 admission 的补充,可以约束用户的某些行为,例如必设置资源时必须设置 limit 和 request,设置镜像版本时,必须按照指定的拉取策略设置等等。
  3. k6]:k6 是一个以开发人员为中心的开源负载和性能回归测试工具,用于测试云原生后端基础架构的性能:API、微服务、无服务器、容器和网站。它可以很好地集成到开发工作流程和 CI/CD 自动化管道中。

本周阅读推荐

  1. 在 Kubernetes 上使用 Jenkins(https://mp.weixin.qq.com/s/-uCMaAr38B0Ge-cn5WQcVA) 本文描述了基于 Kubernetes + Jenkins 的一种 DevOps 的解决方案。
  2. Cluster Monitoring With Prometheus Operator https://containerjournal.com/2019/07/29/cluster-monitoring-with-prometheus-operator/ 本文简要描述了 Prometheus Operator 在 Kubernetes 的无缝安装和其作用、工作原理以及帮助监控通过 Prometheus Operator 发挥作用以发现目标并削减冗余指标。
  3. 基于边缘容器的阿里云 CDN 云原生实践 , 阿里云容器服务于 8 月 1 号正式公测“边缘 Kubernetes 集群托管”服务,该服务面向 CDN、IoT 等诸多边缘计算场景,提供云边一体的云原生体验。CDN 场景中不仅规模比较大,而且也能锤炼整个边缘集群的稳定性和大规模的服务能力。
  4. Knative 基本功能深入剖析:Knative Serving 自动扩缩容 Autoscaler 。Knative Serving 在默认情况下,提供了开箱即用的快速、基于请求的自动扩缩容功能 - Knative Pod Autoscaler(KPA)。本文旨在分享如何在 Knative 中玩转 Autoscaler。

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

本文作者:衷源、元毅、张磊、王夕宁
责任编辑:木环

上一篇:Spring Boot (初级知识点)(二)


下一篇:KUBERNETES04_下载策略、私有仓库下载、env、command、生命周期容器钩子、资源限制(一)