OpenKruise 是一个基于 Kubernetes 的扩展套件,主要聚焦于云原生应用的自动化,包括部署、发布、运维以及可用性防护。以下是 OpenKruise 的一些核心功能和特点:
-
增强版本的 Workloads:
- OpenKruise 提供了一系列增强版本的 Workloads(工作负载),例如 CloneSet、Advanced StatefulSet、Advanced DaemonSet、BroadcastJob 等。
- 这些 Workloads 不仅支持 Kubernetes 原生 Workloads 的基础功能,还提供了原地升级、可配置的扩缩容/发布策略、并发操作等高级特性。
- 原地升级允许更新应用容器镜像甚至环境变量,而不影响 Pod 中的其他容器。
-
应用的旁路管理:
- OpenKruise 提供了多种通过旁路管理应用 sidecar 容器、多区域部署的方式。
- 例如,SidecarSet 可以帮助在所有匹配的 Pod 创建时注入特定的 sidecar 容器,并支持原地升级 sidecar 容器镜像,不影响 Pod 中其他容器。
- WorkloadSpread 可以约束无状态 Workload 扩容出来的 Pod 的区域分布,实现单一 workload 的多区域和弹性部署。
-
高可用性防护:
- OpenKruise 提供了对 Kubernetes 资源的高可用性防护,包括 CRD、Namespace 以及几乎全部的 Workloads 类型资源。
- 相比于 Kubernetes 原生的 PodDisruptionBudget(PDB),OpenKruise 提供的 PodUnavailableBudget 能够防护 Pod Deletion、Eviction、Update 等多种 voluntary disruption 场景。
-
高级的应用运维能力:
- OpenKruise 提供了高级的运维能力,如 ImagePullJob 用于在节点上预先拉取镜像,减少 Pod 启动时的延迟。
- 还支持指定 Pod 中的一个或多个容器被原地重启。
-
安装和部署:
- OpenKruise 可以通过 Helm 安装在 Kubernetes 集群中,支持 Kubernetes >= 1.16 以上版本的集群。
-
社区和维护:
- OpenKruise 由阿里巴巴集团的阿里云团队维护和开发,并已贡献给云原生计算基金会(CNCF)。
OpenKruise 通过提供这些高级功能,帮助开发者和运维人员更有效地管理和部署云原生应用,特别是在大规模应用和集群的场景中。