Skip to content

Latest commit

 

History

History
121 lines (73 loc) · 6.89 KB

README-zh_CN.md

File metadata and controls

121 lines (73 loc) · 6.89 KB

OpenKruise/Kruise

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

English | 简体中文

notification 最新进展:
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 控制器。

用户

登记: 如果贵司正在使用 Kruise 请留言

  • 阿里巴巴集团, 蚂蚁集团, 斗鱼TV, 申通, Boss直聘
  • 杭银消费, 万翼科技, 多点, Bringg, 佐疆科技
  • Lyft, 携程, 享住智慧, VIPKID, 掌门1对1
  • 小红书, 比心, 永辉科技中心, 跟谁学, 哈啰出行
  • Spectro Cloud, 艾佳生活, Arkane Systems, 滴普科技, 火花思维
  • OPPO, 苏宁

贡献

我们非常欢迎每一位社区同学共同参与 Kruise 的建设,你可以从 CONTRIBUTING.md 手册开始。

社区

活跃的社区途径:

License

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