OpenKruise是Kubernetes的一个标准扩展,可以配合原生Kubernetes使用。OpenKruise核心在于自动化,从不同维度解决Kubernetes上应用的自动化,包括部署、升级、弹性扩缩容等。本文介绍如何使用OpenKruise部署云原生应用。
背景信息
OpenKruise是阿里云开源的云原生应用自动化引擎,也是阿里巴巴经济体上云全面使用的部署基座,已正式加入CNCF Sandbox。
OpenKruise包含了多种自定义Workload,用于无状态应用、有状态应用、Sidecar容器、Daemon应用等部署管理,提供了原地升级、灰度、流式、配置优先级等扩展策略。
使用说明
OpenKruise包含CloneSet、Advanced StatefulSet、Advanced DaemonSet等控制器。以下介绍常用控制器的功能。
控制器 | 功能 | 推荐指数 |
---|---|---|
CloneSet |
管理无状态应用,对标Kubernetes原生Deployment。关于CloneSet的详细介绍,请参见Cloneset。 资源(YAML)的字段与Deployment不完全兼容,但功能上全覆盖,并提供比Deployment更丰富的策略。 |
推荐指数:✩✩✩✩✩ |
Advanced StatefulSet |
管理有状态应用,对标Kubernetes原生StatefulSet。关于Advanced StatefulSet的详细介绍,请参见Advanced StatefulSet。 资源(YAML)字段与原生StatefulSet完全兼容,只需要把 |
推荐指数:✩✩✩✩ |
Advanced DaemonSet |
管理Daemon应用,对标Kubernetes原生DaemonSet。关于Advanced DaemonSet的详细介绍,请参见Advanced DaemonSet。 资源(YAML)字段与原生DaemonSet完全兼容,只需要把 |
推荐指数:✩✩✩✩ |
SidecarSet |
独立管理Sidecar容器和注入。关于SidecarSet的详细介绍,请参见SidecarSet。 在独立CR中定义Sidecar容器和Label Selector,OpenKruise会在所有符合Selector条件的Pod创建时注入定义好的Sidecar容器,并支持对已注入Sidecar容器做原地升级。 |
推荐指数:✩✩✩✩ |
UnitedDeployment |
管理不同区域下的多个Sub Workload,关于UnitedDeployment的详细介绍,请参见UnitedDeployment。 目前支持将CloneSet、StatefulSet、Advanced StatefulSet作为Sub Workload,您可以用一个UnitedDeployment来定义不同区域中的Sub Workload部署Replicas。 |
推荐指数:✩✩✩ |
以下介绍CloneSet、Advanced StatefulSet、Advanced DaemonSet与社区对标控制器的功能对比。
功能 | CloneSet VS Deployment | Advanced StatefulSet VS StatefulSet | Advanced DaemonSet VS DaemonSet | |||
---|---|---|---|---|---|---|
CloneSet | Deployment | Advanced StatefulSet | StatefulSet | Advanced DaemonSet | DaemonSet | |
流式扩容 | 不支持(开源中,未来会支持) | 不支持 | 不支持 | 不支持 | 支持 | 不支持 |
指定缩容 | 支持 | 不支持 | 支持 | 不支持 | 不支持 | 不支持 |
Pod重建升级 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 |
Pod原地升级 | 支持 | 不支持 | 支持 | 不支持 | 不支持(开源中,未来会支持) | 不支持 |
分批灰度发布 | 支持 | 不支持 | 支持 | 支持 | 支持 | 不支持 |
最大可用数量 | 支持 | 支持 | 支持 | 不支持 | 支持 | 支持 |
最大弹性数量 | 支持 | 支持 | 不支持 | 不支持 | 支持 | 不支持 |
通过使用优先级策略和打散策略来自定义发布顺序 | 支持 | 不支持 | 支持 | 不支持 | 支持 | 不支持 |
通过lifecycle hook管理Pod生命周期 | 支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 |
安装OpenKruise
CustomResourceWebhookConversion
feature-gate。
- 通过ACK应用目录安装:一键安装,无需使用Helm命令行工具,后续只能通过执行
helm upgrade
命令,升级OpenKruise版本。 - 通过Helm Chart安装:适用于所有原生Kubernetes集群,可自主管理版本、配置参数,但是需要命令行操作。
通过ACK应用目录安装OpenKruise
- 登录容器服务管理控制台。
- 在控制台左侧导航栏中,选择 。
- 在阿里云应用页签下单击应用管理,然后选择ack-kruise。
- 在应用目录 - ack-kruise页面创建区域,选择安装的集群和命名空间设置发布名称,然后单击创建。
通过Helm Chart安装OpenKruise
在文档使用中是否遇到以下问题
更多建议
匿名提交