English | 简体中文
最新进展: |
---|
May 20th, 2021. Kruise v0.9.0 发布! 新增了多种重大功能如 容器重建/重启、删除安全防护等,详情参见 CHANGELOG. |
Mar 4th, 2021. Kruise v0.8.0 发布! 提供了重构版本的 SidecarSet、UnitedDeployment 支持管理 Deployment,以及一个新的 kruise-daemon 组件目前支持镜像预热,详情参见 CHANGELOG. |
Dec 16th, 2020. Kruise v0.7.0 发布! 提供一个新的 AdvancedCronJob CRD、将 Advanced StatefulSet 升级 v1beta1 版本、以及其他控制器一些新增能力,详情参见 CHANGELOG. |
OpenKruise (官网: https://openkruise.io) 是托管在 Cloud Native Computing Foundation (CNCF) 下的 Sandbox 项目。 它提供一套在 Kubernetes核心控制器 之外的扩展工作负载、应用管理能力。
目前,Kruise 主要提供了以下控制器能力:
-
CloneSet: 提供了更加高效、确定可控的应用管理和部署能力,支持优雅原地升级、指定删除、发布顺序可配置、并行/灰度发布等丰富的策略,可以满足更多样化的应用场景。
-
Advanced StatefulSet: 基于原生 StatefulSet 之上的增强版本,默认行为与原生完全一致,在此之外提供了原地升级、并行发布(最大不可用)、发布暂停等功能。
-
SidecarSet: 对 sidecar 容器做统一管理,在满足 selector 条件的 Pod 中注入指定的 sidecar 容器。
-
Advanced DaemonSet: 基于原生 DaemonSet 之上的增强版本,默认行为与原生一致,在此之外提供了灰度分批、按 Node label 选择、暂停、热升级等发布策略。
-
UnitedDeployment: 通过多个 subset workload 将应用部署到多个可用区。
-
BroadcastJob: 配置一个 job,在集群中所有满足条件的 Node 上都跑一个 Pod 任务。
-
AdvancedCronJob: 一个扩展的 CronJob 控制器,目前 template 模板支持配置使用 Job 或 BroadcastJob。
-
ImagePullJob: 支持用户指定在任意范围的节点上预热镜像。
-
ContainerRecreateRequest: 为用户提供了重建/重启存量 Pod 中一个或多个容器的能力。
-
Deletion Protection: 该功能提供了删除安全策略,用来在 Kubernetes 级联删除的机制下保护用户的资源和应用可用性。
-
原地升级
原地升级是一种可以避免删除、新建 Pod 的升级镜像能力。它比原生 Deployment/StatefulSet 的重建 Pod 升级更快、更高效,并且避免对 Pod 中其他不需要更新的容器造成干扰。
-
Sidecar 管理
支持在一个单独的 CR 中定义 sidecar 容器,OpenKruise 能够帮你把这些 Sidecar 容器注入到所有符合条件的 Pod 中。这个过程和 Istio 的注入很相似,但是你可以管理任意你关心的 Sidecar。
-
跨多可用区部署
定义一个跨多个可用区的全局 workload,容器,OpenKruise 会帮你在每个可用区创建一个对应的下属 workload。你可以统一管理他们的副本数、版本、甚至针对不同可用区采用不同的发布策略。
-
镜像预热
支持用户指定在任意范围的节点上下载镜像。
-
容器重建/重启
支持用户重建/重启存量 Pod 中一个或多个容器。
-
...
想要快速使用 OpenKruise 非常简单! 对于版本高于 v1.13+ 的 Kubernetes 集群来说,只要使用 helm v3.1.0+ 执行安装即可:
# Kubernetes 版本 1.13 或 1.14
helm install kruise https://github.com/openkruise/kruise/releases/download/v0.9.0/kruise-chart.tgz --disable-openapi-validation
# Kubernetes 版本大于等于 1.15
helm install kruise https://github.com/openkruise/kruise/releases/download/v0.9.0/kruise-chart.tgz
注意直接安装 chart 会使用默认的 template values,你也可以根据你的集群情况指定一些特殊配置,比如修改 resources 限制或者配置 feature-gates。
更多细节可以查看 安装手册
你可以在 OpenKruise website 查看到完整的文档集。
我们也提供了 tutorials 来示范如何使用 Kruise 控制器。
- 阿里巴巴集团, 蚂蚁集团, 斗鱼TV, 申通, Boss直聘
- 杭银消费, 万翼科技, 多点, Bringg, 佐疆科技
- Lyft, 携程, 享住智慧, VIPKID, 掌门1对1
- 小红书, 比心, 永辉科技中心, 跟谁学, 哈啰出行
- Spectro Cloud, 艾佳生活, Arkane Systems, 滴普科技, 火花思维
- OPPO, 苏宁
我们非常欢迎每一位社区同学共同参与 Kruise 的建设,你可以从 CONTRIBUTING.md 手册开始。
活跃的社区途径:
- Slack: Channel in Kubernetes Slack
- 钉钉讨论群
Kruise is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.