English | 简体中文
最新进展: |
---|
Aug 19th, 2020. Kruise v0.6.0 发布! 升级新的项目结构和依赖,并提供新的 Advanced DaemonSet 控制器,详情参见 CHANGELOG. |
May 19th, 2020. Kruise v0.5.0 发布! CloneSet 支持 maxSurge 策略、为 StatefulSet/SidecarSet 修复部分 bug,详情参见 CHANGELOG. |
Mar 20th, 2020. Kruise v0.4.1 发布! 为 Advanced StatefulSet 和 CloneSet 提供了 优雅原地升级 功能,详情参见 CHANGELOG. |
Kruise 是 OpenKruise (官网: https://openkruise.io) 中的核心项目之一,它提供一套在Kubernetes核心控制器之外的扩展 workload 管理和实现。
目前,Kruise 提供了以下 workload 控制器:
-
CloneSet: 提供了更加高效、确定可控的应用管理和部署能力,支持优雅原地升级、指定删除、发布顺序可配置、并行/灰度发布等丰富的策略,可以满足更多样化的应用场景。
-
Advanced StatefulSet: 基于原生 StatefulSet 之上的增强版本,默认行为与原生完全一致,在此之外提供了原地升级、并行发布(最大不可用)、发布暂停等功能。
-
SidecarSet: 对 sidecar 容器做统一管理,在满足 selector 条件的 Pod 中注入指定的 sidecar 容器。
-
UnitedDeployment: 通过多个 subset workload 将应用部署到多个可用区。
-
BroadcastJob: 配置一个 job,在集群中所有满足条件的 Node 上都跑一个 Pod 任务。
-
Advanced DaemonSet: 基于原生 DaemonSet 之上的增强版本,默认行为与原生一致,在此之外提供了灰度分批、按 Node label 选择、暂停、热升级等发布策略。
项目的 roadmap 参考这里。 Video by Lachlan Evenson 是一个对于新人很友好的 demo。
-
原地升级
原地升级是一种可以避免删除、新建 Pod 的升级镜像能力。它比原生 Deployment/StatefulSet 的重建 Pod 升级更快、更高效,并且避免对 Pod 中其他不需要更新的容器造成干扰。
-
Sidecar 管理
支持在一个单独的 CR 中定义 sidecar 容器,OpenKruise 能够帮你把这些 Sidecar 容器注入到所有符合条件的 Pod 中。这个过程和 Istio 的注入很相似,但是你可以管理任意你关心的 Sidecar。
-
跨多可用区部署
定义一个跨多个可用区的全局 workload,容器,OpenKruise 会帮你在每个可用区创建一个对应的下属 workload。你可以统一管理他们的副本数、版本、甚至针对不同可用区采用不同的发布策略。
-
...
想要快速使用 OpenKruise 非常简单! 对于版本高于 v1.12+ 的 Kubernetes 集群来说,只要使用 helm v3 执行安装即可:
helm install kruise https://github.com/openkruise/kruise/releases/download/v0.6.0/kruise-chart.tgz
注意直接安装 chart 会使用默认的 template values,你也可以根据你的集群情况指定一些特殊配置,比如修改 resources 限制或者只启用某些特定的控制器能力。
更多细节可以查看 quick-start手册
你可以在 OpenKruise website 查看到完整的文档集。
我们也提供了 tutorials 来示范如何使用 Kruise 控制器。
我们非常欢迎每一位社区同学共同参与 Kruise 的建设,你可以从 CONTRIBUTING.md 手册开始。
活跃的社区途径:
- Slack: channel address
- 钉钉讨论群
Kruise is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.