OpenKruise 是什么

欢迎来到 OpenKruise 的世界!

OpenKruise 是 Kubernetes 的一个标准扩展,它可以配合原生 Kubernetes 使用,并为管理应用容器、sidecar、镜像分发等方面提供更加强大和高效的能力。

核心功能

  • 原地升级

    原地升级是一种可以避免删除、新建 Pod 的升级镜像能力。它比原生 Deployment/StatefulSet 的重建 Pod 升级更快、更高效,并且避免对 Pod 中其他不需要更新的容器造成干扰。

  • Sidecar 管理

    支持在一个单独的 CR 中定义 sidecar 容器,OpenKruise 能够帮你把这些 Sidecar 容器注入到所有符合条件的 Pod 中。这个过程和 Istio 的注入很相似,但是你可以管理任意你关心的 Sidecar。

  • 跨多可用区部署

    定义一个跨多个可用区的全局 workload,容器,OpenKruise 会帮你在每个可用区创建一个对应的下属 workload。你可以统一管理他们的副本数、版本、甚至针对不同可用区采用不同的发布策略。

  • 镜像预热

    支持用户指定在任意范围的节点上下载镜像。

  • 容器重建/重启

    支持用户重建/重启存量 Pod 中一个或多个容器。

Controllers 与 Webhooks

  • CloneSet

    提供更加高效、确定可控的应用管理和部署能力,支持优雅原地升级、指定删除、发布顺序可配置、并行/灰度发布等丰富的策略,可以满足更多样化的应用场景。

  • Advanced StatefulSet

    基于原生 StatefulSet 之上的增强版本,默认行为与原生完全一致,在此之外提供了原地升级、并行发布(最大不可用)、发布暂停等功能。

  • SidecarSet

    对 sidecar 容器做统一管理,在满足 selector 条件的 Pod 中注入指定的 sidecar 容器。

  • UnitedDeployment

    通过多个 subset workload 将应用部署到多个可用区。

  • BroadcastJob

    配置一个 job,在集群中所有满足条件的 Node 上都跑一个 Pod 任务。

  • Advanced DaemonSet

    基于原生 DaemonSet 之上的增强版本,默认行为与原生一致,在此之外提供了灰度分批、按 Node label 选择、暂停、热升级等发布策略。

  • AdvancedCronJob

    一个扩展的 CronJob 控制器,目前 template 模板支持配置使用 Job 或 BroadcastJob。

  • ImagePullJob

    支持用户指定在任意范围的节点上下载镜像。

  • ContainerRecreateRequest

    为用户提供了重建/重启存量 Pod 中一个或多个容器的能力。

  • Deletion Protection

    该功能提供了删除安全策略,用来在 Kubernetes 级联删除的机制下保护用户的资源和应用可用性。

  • PodUnavailableBudget

    对比Kubernetes PDB只提供针对Pod Eviction的防护,PUB能够防护Pod Deletion、Eviction、Update多种voluntary disruption场景。

  • WorkloadSpread

    约束无状态 workload 的区域分布,赋予单一 workload 的多区域和弹性部署的能力。