云原生应用自动化管理套件OpenKruise,近期发布了v1.0大版本,针对Kubernetes的增强能力套件,专注于云原生应用的部署、升级、运维、稳定性防护等领域的功能,通过CRD等标准方式扩展,适用于1.16以上版本的任意Kubernetes集群。一键部署Kruise无需更多配置,只需一条helm命令即可完成。OpenKruise v1.0版本带来了多种新特性和功能增强优化。从v1.0开始,CRD/WehhookConfiguration等资源配置的版本升级到了v1,支持Kubernetes v1.22及以上版本的集群,同时要求Kubernetes版本不低于v1.16。以下是v1.0版本的部分功能介绍,详细的ChangeLog列表请查看OpenKruise Github上的release说明以及官网文档。支持环境变量原地升级。OpenKruise从早期版本开始就支持了原地升级功能,主要应用于CloneSet与AdvancedStatefulSet两种工作负载上。原地升级使应用在升级过程中,无需删除、新建Pod对象,而是通过修改Pod中容器配置实现升级。OpenKruise在v1.0版本中,通过Downward API方式支持了env环境变量的原地升级。同时,也去除了过去对镜像原地升级的imageID限制,支持相同imageID的两个镜像替换升级。具体使用方式请参考文档。配置跨命名空间分发。为解决跨namespace分发及同步Secret、ConfigMap等namespace-scoped资源的不便,OpenKruise设计并实现了一个新的CRD——ResourceDistribution。ResourceDistribution支持Secret和ConfigMap两类资源的分发和同步,由resource和targets两个字段构成,实现资源在cluster-scoped的分发。具体使用方式请参考文档。容器启动顺序控制。对于Kubernetes中的多个容器可能存在依赖关系的需求,OpenKruise在v1.0中提供了名为ContainerLaunchPriority的功能,用于控制Pod中多个容器的强制启动顺序。具体使用方式请参考文档。此外,OpenKruise还提供了kubectl-kruise命令行工具,是kubectl的标准插件,提供适用于OpenKruiseworkload的多种功能。其余部分功能也进行了改进与优化,包括CloneSet、WorkloadSpread、AdvancedDaemonSet、SidecarSet、PodUnavailableBudget、NodeImage、UnitedDeployment等。