计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
弹性伸缩 AS
镜像服务 IMS
专属主机 DeH
函数工作流 FunctionGraph
云手机服务器 CPH
Huawei Cloud EulerOS
网络
虚拟私有云 VPC
弹性公网IP EIP
虚拟专用网络 VPN
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
VPC终端节点 VPCEP
云连接 CC
企业路由器 ER
企业交换机 ESW
全球加速 GA
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
边缘安全 EdgeSec
威胁检测服务 MTD
CDN与智能边缘
内容分发网络 CDN
CloudPond云服务
智能边缘云 IEC
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
云搜索服务 CSS
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
数据可视化 DLV
数据湖工厂 DLF
湖仓构建 LakeFormation
企业应用
云桌面 Workspace
应用与数据集成平台 ROMA Connect
云解析服务 DNS
专属云
专属计算集群 DCC
IoT物联网
IoT物联网
设备接入 IoTDA
智能边缘平台 IEF
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
国际站常见问题
ICP备案
我的凭证
支持计划
客户运营能力
合作伙伴支持计划
专业服务
区块链
区块链服务 BCS
Web3节点引擎服务 NES
解决方案
SAP
高性能计算 HPC
视频
视频直播 Live
视频点播 VOD
媒体处理 MPC
实时音视频 SparkRTC
数字内容生产线 MetaStudio
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
存储容灾服务 SDRS
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
专属分布式存储服务 DSS
容器
云容器引擎 CCE
容器镜像服务 SWR
应用服务网格 ASM
华为云UCS
云容器实例 CCI
管理与监管
云监控服务 CES
统一身份认证服务 IAM
资源编排服务 RFS
云审计服务 CTS
标签管理服务 TMS
云日志服务 LTS
配置审计 Config
资源访问管理 RAM
消息通知服务 SMN
应用运维管理 AOM
应用性能管理 APM
组织 Organizations
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
应用身份管理服务 OneAccess
数据库
云数据库 RDS
文档数据库服务 DDS
数据管理服务 DAS
数据复制服务 DRS
云数据库 GeminiDB
云数据库 GaussDB
分布式数据库中间件 DDM
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
人脸识别服务 FRS
图引擎服务 GES
图像识别 Image
内容审核 Moderation
文字识别 OCR
AI开发平台ModelArts
图像搜索 ImageSearch
对话机器人服务 CBS
华为HiLens
视频智能分析服务 VIAS
语音交互服务 SIS
应用中间件
分布式缓存服务 DCS
API网关 APIG
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
多活高可用服务 MAS
事件网格 EG
企业协同
华为云会议 Meeting
云通信
消息&短信 MSGSMS
云生态
合作伙伴中心
云商店
开发者工具
SDK开发指南
API签名指南
Terraform
华为云命令行工具服务 KooCLI
其他
产品价格详情
系统权限
管理控制台
客户关联华为云合作伙伴须知
消息中心
公共问题
开发与运维
应用管理与运维平台 ServiceStage
软件开发生产线 CodeArts
需求管理 CodeArts Req
部署 CodeArts Deploy
性能测试 CodeArts PerfTest
编译构建 CodeArts Build
流水线 CodeArts Pipeline
制品仓库 CodeArts Artifact
测试计划 CodeArts TestPlan
代码检查 CodeArts Check
代码托管 CodeArts Repo
云应用引擎 CAE
开天aPaaS
云消息服务 KooMessage
云手机服务 KooPhone
云空间服务 KooDrive

OpenKruise

更新时间:2025-02-18 GMT+08:00

插件简介

OpenKruise是一个基于Kubernetes的扩展套件,使用CRD拓展来提供扩展工作负载和应用管理能力,实现云原生应用的自动化部署、发布、运维和可用性防护,使得应用的管理更加简单和高效。

OpenKruise的核心能力如下:

  • 高级工作负载:OpenKruise包含一系列增强版本的工作负载,例如CloneSet、Advanced StatefulSet等工作负载。
  • 应用sidecar管理:OpenKruise提供了多种SidecarSet,简化了sidecar的注入,并提供了sidecar原地升级的能力。
  • 应用安全防护:OpenKruise可以保护您的Kubernetes资源不受级联删除机制的干扰。
  • 高效应用运维能力:OpenKruise提供了很多高级的运维能力来帮助您更好地管理应用,例如使用ImagePullJob在任意范围的节点上预先拉取某些镜像,或者原地重启Pod中的容器等。

开源社区地址:https://github.com/openkruise/kruise

约束与限制

如果您已经在集群中部署了社区的OpenKruise,请您先将其卸载后再安装CCE提供的OpenKruise插件,否则可能会出现插件安装失败的情况。

注意事项

OpenKruise开源组件中,引入了Webhook的配置,社区将其默认配置的Pod相关失效策略为Fail,这意味着一旦kruise-controller-manager处于不可用状态,将会造成Pod的创建/删除等操作都将会被拦截。因此在使用该插件前,请慎重评估使用该插件所引入的风险,并且尽量将kruise-controller-manager组件配置为多实例的高可用状态,以确保kruise-controller-manager中的Webhook Server能够正常处理请求。

须知:

OpenKurise是CCE基于开源软件进行适配并集成的精选开源插件,CCE将提供全面的技术支持服务。然而,CCE不承担因开源软件缺陷导致的业务损失责任,也不承担赔偿或额外的服务,强烈建议用户定期升级软件以修复潜在问题。

安装步骤

  1. 登录CCE控制台,单击集群名称进入集群,单击左侧导航栏的“插件中心”,在右侧找到OpenKruise插件,单击“安装”
  2. 在安装插件页面,根据需求选择“规格配置”

    • 选择“系统预置规格”时,您可根据集群规模选择“小规格”或“大规格”,系统会根据不同的预置规格配置插件的实例数及资源配额,具体配置值请以控制台显示为准。

      “小规格”为单实例部署,适用50节点以下集群规模;“大规格”为高可用部署,适用50节点以上集群规模。

    • 选择“自定义规格”时,您可根据需求调整插件实例数和资源配额。实例数为1时插件不具备高可用能力,当插件实例所在节点异常时可能导致插件功能无法正常使用,请谨慎选择。

  3. 选择是否开启“kruise-daemon配置”

    kruise-daemon是OpenKruise新增的DaemonSet组件,可为您提供镜像预热、容器重启功能。
    须知:

    在v1.25及以上版本的集群中安装1.0.3版本的OpenKruise插件时,kruise-daemon无法在使用docker容器引擎的节点上运行,请使用containerd容器引擎。详细原因请参见组件说明

  4. 设置插件实例的部署策略。

    说明:
    • 调度策略对于DaemonSet类型的插件实例不会生效。
    • 设置多可用区部署或节点亲和策略时,需保证集群中存在满足调度策略的节点且拥有足够的资源,否则插件实例将无法运行。
    表1 插件调度配置

    参数

    参数说明

    多可用区部署

    • 优先模式:优先将插件的Deployment实例调度到不同可用区的节点上,如集群下节点不满足多可用区,插件实例将调度到单可用区下的不同节点。
    • 均分模式:插件Deployment实例均匀调度到当前集群下各可用区,增加新的可用区后建议扩容插件实例以实现跨可用区高可用部署;均分模式限制不同可用区间插件实例数相差不超过1,单个可用区资源不足会导致后续其他实例无法调度。
    • 强制模式:插件Deployment实例强制调度到不同可用区的节点上,每个可用区下最多运行一个实例。如集群下节点不满足多可用区,插件实例将无法全部运行。节点故障后,插件实例存在无法迁移风险。

    节点亲和

    • 不配置:插件实例不指定节点亲和调度。
    • 指定节点调度:指定插件实例部署的节点。若不指定,将根据集群默认调度策略进行随机调度。
    • 指定节点池调度:指定插件实例部署的节点池。若不指定,将根据集群默认调度策略进行随机调度。
    • 自定义亲和策略:填写期望插件部署的节点标签实现更灵活的调度策略,若不填写将根据集群默认调度策略进行随机调度。

      同时设置多条自定义亲和策略时,需要保证集群中存在同时满足所有亲和策略的节点,否则插件实例将无法运行。

    容忍策略

    容忍策略与节点的污点能力配合使用,允许(不强制)插件的 Deployment 实例调度到带有与之匹配的污点的节点上,也可用于控制插件的 Deployment 实例所在的节点被标记污点后插件的 Deployment 实例的驱逐策略。

    插件会对实例添加针对node.kubernetes.io/not-readynode.kubernetes.io/unreachable污点的默认容忍策略,容忍时间窗为60s。

    详情请参见设置容忍策略

  5. 单击“安装”

组件说明

表2 OpenKruise组件

容器组件

说明

资源类型

kruise-controller-manager

OpenKruise的controller中心组件,同时包含了针对Kruise CRD以及Pod资源的admission webhook。kruise-controller-manager会创建webhook configurations来配置哪些资源需要感知处理,并为kube-apiserver提供可调用的Service。

Deployment

kruise-daemon

通过DaemonSet部署到每个节点上,提供镜像预热、容器重启等功能。

DaemonSet

须知:

Kubernetes社区在1.24版本移除了对dockershim的支持。CCE为兼顾用户使用docker运行时的习惯,在CCE的v1.25及以上的集群版本引入了cri-dockerd用于替换原来的dockershim,但是OpenKruise社区当前并未实现对cri-dockerd的支持(参见issue)。该问题将在后续版本中解决。

因此,在v1.25及以上版本的集群中安装1.0.3版本的OpenKruise插件时,kruise-daemon无法在使用docker容器引擎的节点上运行,请使用containerd容器引擎。

常见问题

创建工作负载时,事件中出现以下报错:

Error creating: Internal error occurred: failed calling webhook "mpod.kb.io": failed to call webhook: Post "https://kruise-webhook-service.kube-system.svc:443/mutate-pod?timeout=10s": dial tcp 10.247.10.181:443: connect: connection refused

出现以上问题的原因是kurise-controller-manager组件不可用,导致部分命名空间下(非kube-system命名空间或不带control-plane: openkruise标签的命名空间)的Pod进行创建/更新/删除操作均会被拦截。

解决方案:

将kruise-controller-manager组件恢复正常即可正常调度。造成kruise-controller-manager异常的原因及解决建议如下:

  • kruise-controller-manager所需的资源不够无法正常调度:建议为插件配置合理的资源。
  • kruise-controller-manager配置了调度或亲和策略导致该Pod无法被正常调度:建议检查调度策略并配置合适的调度策略,以确保kruise-controller-manager被正常调度。

版本记录

表3 OpenKruise插件版本记录

插件版本

支持的集群版本

更新特性

社区版本

1.0.23

v1.25

v1.27

v1.28

v1.29

v1.30

v1.31

支持CCE v1.31集群

1.5.4

1.0.12

v1.23

v1.25

v1.27

v1.28

v1.29

v1.30

支持CCE v1.30集群

1.5.4

1.0.3

v1.23

v1.25

v1.27

v1.28

v1.29

首次提供OpenKruise插件。

1.5.4

我们使用cookie来确保您的高速浏览体验。继续浏览本站,即表示您同意我们使用cookie。 详情

文档反馈

文档反馈

意见反馈

0/500

标记内容

同时提交标记内容