RHEL 9 Beta 和 Knative 1.0发布

November 7, 2021

写篇短文记录一下本周的两个重要开源发布:

1. RHEL 9.0 Beta版

红帽的企业版Linux 9.0 Beta版居然都发布了,感觉RHEL 8 还在渐入佳境的过程中,也许就配合Centos重新定位吧。 从发布声明来看,RHEL 9 的“重大”特性似乎不是很多,远没有版本8时那种耳目一新的感觉。不过,现代企业级操作系统,加强的都是内功吧。

具体看一下:

  1. 语言编译链全面更新,GCC, Go, LLVM, Rust, Python
  2. Centos上下游重定位和stream包管理,对于开发者来说,多个开发环境的共存更为方便。
  3. 从8以来就加强内建的web console,9也是提供了更多的功能,如性能数据、内核实时更新等
  4. 安全方面的加强。配合满足各种合规性要求,PCI-DSS, HIPAA,IMA等,另外还提到集成OpenSSL 3
  5. 容器开发的能力提升。8版本就统一用podman替代docker了,9推荐使用UBI based镜像,这些改进也会更好的帮助openshift产品

之前写过一篇RHEL 8 的博文。我想因为Centos的因素,打算留在8版本的用户肯定不少,后续也会继续关注9版本的新动向吧。

2. Knative 1.0 发布

Knative正式发布1.0,上周已经做出声明,应该是等一些数据同步吧。 Knative是云原生的“准”标准,基于K8s,Istio等,提供一些实用功能,最初有build来通过K8s进行持续构建,后台独立出去成立了Tekton项目。 另外两个是Service和Eventing,分别可以用来进行微服务治理和无服务器事件编程。 其中Service基于Istio,补充加强了如版本,路由等能力。而Eventing则在K8s层面定义了EventSource,Channel,Feed,PubSub等概念,可以做到与实现解耦。

一些特性就做个简单罗列吧:
支持多个HTTP路由层(包括Istio、Contour、Kourier和Ambassador)
支持具有普通订阅方法的事件概念的多个存储层(包括Kafka、GCP PubSub 和 RabbitMQ)
一个 "鸭子类型 "抽象,允许处理具有共同字段(如 status.conditions 和 status.address)的任意Kubernetes资源。
一个支持额外功能插件的命令行客户端
一个定期的6周一次的发布过程
支持HTTP/2、gRPC和WebSockets
经纪人和触发器,以简化事件的发布和订阅,同时解耦生产者和消费者
支持事件组件向非Knative组件传递,包括集群外组件或主机上的特定URL。
支持自动提供TLS证书(通过DNS或HTTP01挑战)。
自定义事件目的地的交付选项,包括重试和死信队列以处理无法交付的消息
支持经纪商和通道的事件追踪,以改进调试工作。
从Knative Build衍生出的Tekton项目
并行和序列组件,用于编纂某些复合事件工作流程
关于事件源和如何贡献它们的文档,目前涵盖了大约40种不同的事件源
在小版本发布之间,"无命题 "升级,没有放弃的请求
重新设计Serving的API形状,以匹配Deployment、CronJob等使用的PodTemplateSpec,以简化Kubernetes意识用户的使用。
支持将事件目标地址注入PodTemplateSpec形状的对象中
支持基于并发量或RPS的水平吊舱自动扩展
使用领导者选举片的控制平面组件的高可用性
操作员,帮助管理员安装Knative
快速入门,供开发人员在本地试用Knative
使用DomainMapping简化服务的管理和发布

之前我认为其发展过慢,但这段时间在serverless跨公有云上似乎也没有更好的方案,而且openshift依然坚持采用knative项目,看来还是有很好的未来的。