Skip to content

Latest commit

 

History

History
92 lines (55 loc) · 5.57 KB

README-zh_CN.md

File metadata and controls

92 lines (55 loc) · 5.57 KB

OpenKruise/Kruise

License Go Report Card CII Best Practices Build Status CircleCI codecov Contributor Covenant

English | 简体中文

notification 最新进展:
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 手册开始。

社区

活跃的社区途径:

License

Kruise is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.