欢迎光临
我们一直在努力

KES-Operator:K8s 数据库集群自动化运维方案

文章目录

    • 每日一句正能量
    • 前言
    • KES-Operator:让KES集群管理更加贴合K8s管理方式
    • 从集群创建到运行维护,覆盖KES常用管理场景

在这里插入图片描述

每日一句正能量

真正的成熟,是知世故而不世故,是温柔的看待这个世界的不完美。 在不完美中依然选择爱与善意,是强大的表现。 图片

前言

随着越来越多业务系统运行在Kubernetes环境中,应用的部署和资源管理方式正在发生变化。作为典型的有状态应用,数据库在进入Kubernetes环境后,如何适配Kubernetes的管理方式,也给原有运维模式带来了新的要求。

在Kubernetes环境中,数据库集群管理不仅涉及数据库自身,还需要协调计算、存储、网络等相关资源。随着集群规模扩大,依赖人工完成部署、配置和维护,操作也会更加复杂。

针对用户在Kubernetes环境下管理KES集群的实际需求,电科金仓正式推出KES K8s运维工具——KES-Operator。KES-Operator基于Kubernetes Operator技术和声明式管理方式,将KES集群纳入Kubernetes管理体系,提供集群部署、状态管理、扩缩容、物理备份等能力,用户可以按照Kubernetes的管理方式完成KES集群部署和日常运维。

图片

为了更直观地理解 KES-Operator 带来的变化,下面从部署方式、状态管理、扩缩容、备份监控等维度,对比传统数据库运维方式与使用 KES-Operator 在 Kubernetes 中运维的差异:

对比维度传统数据库运维方式使用 KES-Operator 在 Kubernetes 中运维
部署方式 人工逐项配置计算、存储、网络等资源,依赖手工操作,流程繁琐 声明式管理,通过配置文件定义集群期望状态,KES-Operator 自动创建相关资源
状态管理 依赖人工巡检和手动检查,状态维护成本高 通过 Kubernetes 控制器机制持续监测实际状态,自动协调资源,使实际状态与期望状态保持一致
扩缩容 需要人工调整节点规模并手动修改配置,操作复杂 支持集群扩容与缩容,修改配置后由 KES-Operator 自动完成相应资源调整
备份监控 备份任务和监控信息分散管理,日常维护不够集中 支持物理备份任务统一管理,并集成 KMonitor 监控组件,备份与监控在 Kubernetes 环境中集中管理

KES-Operator:让KES集群管理更加贴合K8s管理方式

KES-Operator基于Kubernetes Operator模式设计,通过自定义资源(CRD)扩展Kubernetes管理能力,将KES集群纳入Kubernetes原生管理体系。用户通过配置定义KES集群的期望状态,KES-Operator持续检查集群实际状态,并自动协调相关Kubernetes资源,使实际状态与配置保持一致。

这样的话,KES集群就可以按照Kubernetes原有的资源管理方式进行部署和维护,减少运维人员反复执行人工操作。

在这里插入图片描述

KES-Operator整体架构

下面是 KES-Operator 的核心能力思维导图:

#mermaid-svg-EENGvWRLcfDLFMo9{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-EENGvWRLcfDLFMo9 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-EENGvWRLcfDLFMo9 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-EENGvWRLcfDLFMo9 .error-icon{fill:#552222;}#mermaid-svg-EENGvWRLcfDLFMo9 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-EENGvWRLcfDLFMo9 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-EENGvWRLcfDLFMo9 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-EENGvWRLcfDLFMo9 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-EENGvWRLcfDLFMo9 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-EENGvWRLcfDLFMo9 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-EENGvWRLcfDLFMo9 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-EENGvWRLcfDLFMo9 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-EENGvWRLcfDLFMo9 .marker.cross{stroke:#333333;}#mermaid-svg-EENGvWRLcfDLFMo9 svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-EENGvWRLcfDLFMo9 p{margin:0;}#mermaid-svg-EENGvWRLcfDLFMo9 .edge{stroke-width:3;}#mermaid-svg-EENGvWRLcfDLFMo9 .section–1 rect,#mermaid-svg-EENGvWRLcfDLFMo9 .section–1 path,#mermaid-svg-EENGvWRLcfDLFMo9 .section–1 circle,#mermaid-svg-EENGvWRLcfDLFMo9 .section–1 polygon,#mermaid-svg-EENGvWRLcfDLFMo9 .section–1 path{fill:hsl(240, 100%, 76.2745098039%);}#mermaid-svg-EENGvWRLcfDLFMo9 .section–1 text{fill:#ffffff;}#mermaid-svg-EENGvWRLcfDLFMo9 .node-icon–1{font-size:40px;color:#ffffff;}#mermaid-svg-EENGvWRLcfDLFMo9 .section-edge–1{stroke:hsl(240, 100%, 76.2745098039%);}#mermaid-svg-EENGvWRLcfDLFMo9 .edge-depth–1{stroke-width:17;}#mermaid-svg-EENGvWRLcfDLFMo9 .section–1 line{stroke:hsl(60, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-EENGvWRLcfDLFMo9 .disabled,#mermaid-svg-EENGvWRLcfDLFMo9 .disabled circle,#mermaid-svg-EENGvWRLcfDLFMo9 .disabled text{fill:lightgray;}#mermaid-svg-EENGvWRLcfDLFMo9 .disabled text{fill:#efefef;}#mermaid-svg-EENGvWRLcfDLFMo9 .section-0 rect,#mermaid-svg-EENGvWRLcfDLFMo9 .section-0 path,#mermaid-svg-EENGvWRLcfDLFMo9 .section-0 circle,#mermaid-svg-EENGvWRLcfDLFMo9 .section-0 polygon,#mermaid-svg-EENGvWRLcfDLFMo9 .section-0 path{fill:hsl(60, 100%, 73.5294117647%);}#mermaid-svg-EENGvWRLcfDLFMo9 .section-0 text{fill:black;}#mermaid-svg-EENGvWRLcfDLFMo9 .node-icon-0{font-size:40px;color:black;}#mermaid-svg-EENGvWRLcfDLFMo9 .section-edge-0{stroke:hsl(60, 100%, 73.5294117647%);}#mermaid-svg-EENGvWRLcfDLFMo9 .edge-depth-0{stroke-width:14;}#mermaid-svg-EENGvWRLcfDLFMo9 .section-0 line{stroke:hsl(240, 100%, 83.5294117647%);stroke-width:3;}#mermaid-svg-EENGvWRLcfDLFMo9 .disabled,#mermaid-svg-EENGvWRLcfDLFMo9 .disabled circle,#mermaid-svg-EENGvWRLcfDLFMo9 .disabled text{fill:lightgray;}#mermaid-svg-EENGvWRLcfDLFMo9 .disabled text{fill:#efefef;}#mermaid-svg-EENGvWRLcfDLFMo9 .section-1 rect,#mermaid-svg-EENGvWRLcfDLFMo9 .section-1 path,#mermaid-svg-EENGvWRLcfDLFMo9 .section-1 circle,#mermaid-svg-EENGvWRLcfDLFMo9 .section-1 polygon,#mermaid-svg-EENGvWRLcfDLFMo9 .section-1 path{fill:hsl(80, 100%, 76.2745098039%);}#mermaid-svg-EENGvWRLcfDLFMo9 .section-1 text{fill:black;}#mermaid-svg-EENGvWRLcfDLFMo9 .node-icon-1{font-size:40px;color:black;}#mermaid-svg-EENGvWRLcfDLFMo9 .section-edge-1{stroke:hsl(80, 100%, 76.2745098039%);}#mermaid-svg-EENGvWRLcfDLFMo9 .edge-depth-1{stroke-width:11;}#mermaid-svg-EENGvWRLcfDLFMo9 .section-1 line{stroke:hsl(260, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-EENGvWRLcfDLFMo9 .disabled,#mermaid-svg-EENGvWRLcfDLFMo9 .disabled circle,#mermaid-svg-EENGvWRLcfDLFMo9 .disabled text{fill:lightgray;}#mermaid-svg-EENGvWRLcfDLFMo9 .disabled text{fill:#efefef;}#mermaid-svg-EENGvWRLcfDLFMo9 .section-2 rect,#mermaid-svg-EENGvWRLcfDLFMo9 .section-2 path,#mermaid-svg-EENGvWRLcfDLFMo9 .section-2 circle,#mermaid-svg-EENGvWRLcfDLFMo9 .section-2 polygon,#mermaid-svg-EENGvWRLcfDLFMo9 .section-2 path{fill:hsl(270, 100%, 76.2745098039%);}#mermaid-svg-EENGvWRLcfDLFMo9 .section-2 text{fill:#ffffff;}#mermaid-svg-EENGvWRLcfDLFMo9 .node-icon-2{font-size:40px;color:#ffffff;}#mermaid-svg-EENGvWRLcfDLFMo9 .section-edge-2{stroke:hsl(270, 100%, 76.2745098039%);}#mermaid-svg-EENGvWRLcfDLFMo9 .edge-depth-2{stroke-width:8;}#mermaid-svg-EENGvWRLcfDLFMo9 .section-2 line{stroke:hsl(90, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-EENGvWRLcfDLFMo9 .disabled,#mermaid-svg-EENGvWRLcfDLFMo9 .disabled circle,#mermaid-svg-EENGvWRLcfDLFMo9 .disabled text{fill:lightgray;}#mermaid-svg-EENGvWRLcfDLFMo9 .disabled text{fill:#efefef;}#mermaid-svg-EENGvWRLcfDLFMo9 .section-3 rect,#mermaid-svg-EENGvWRLcfDLFMo9 .section-3 path,#mermaid-svg-EENGvWRLcfDLFMo9 .section-3 circle,#mermaid-svg-EENGvWRLcfDLFMo9 .section-3 polygon,#mermaid-svg-EENGvWRLcfDLFMo9 .section-3 path{fill:hsl(300, 100%, 76.2745098039%);}#mermaid-svg-EENGvWRLcfDLFMo9 .section-3 text{fill:black;}#mermaid-svg-EENGvWRLcfDLFMo9 .node-icon-3{font-size:40px;color:black;}#mermaid-svg-EENGvWRLcfDLFMo9 .section-edge-3{stroke:hsl(300, 100%, 76.2745098039%);}#mermaid-svg-EENGvWRLcfDLFMo9 .edge-depth-3{stroke-width:5;}#mermaid-svg-EENGvWRLcfDLFMo9 .section-3 line{stroke:hsl(120, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-EENGvWRLcfDLFMo9 .disabled,#mermaid-svg-EENGvWRLcfDLFMo9 .disabled circle,#mermaid-svg-EENGvWRLcfDLFMo9 .disabled text{fill:lightgray;}#mermaid-svg-EENGvWRLcfDLFMo9 .disabled text{fill:#efefef;}#mermaid-svg-EENGvWRLcfDLFMo9 .section-4 rect,#mermaid-svg-EENGvWRLcfDLFMo9 .section-4 path,#mermaid-svg-EENGvWRLcfDLFMo9 .section-4 circle,#mermaid-svg-EENGvWRLcfDLFMo9 .section-4 polygon,#mermaid-svg-EENGvWRLcfDLFMo9 .section-4 path{fill:hsl(330, 100%, 76.2745098039%);}#mermaid-svg-EENGvWRLcfDLFMo9 .section-4 text{fill:black;}#mermaid-svg-EENGvWRLcfDLFMo9 .node-icon-4{font-size:40px;color:black;}#mermaid-svg-EENGvWRLcfDLFMo9 .section-edge-4{stroke:hsl(330, 100%, 76.2745098039%);}#mermaid-svg-EENGvWRLcfDLFMo9 .edge-depth-4{stroke-width:2;}#mermaid-svg-EENGvWRLcfDLFMo9 .section-4 line{stroke:hsl(150, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-EENGvWRLcfDLFMo9 .disabled,#mermaid-svg-EENGvWRLcfDLFMo9 .disabled circle,#mermaid-svg-EENGvWRLcfDLFMo9 .disabled text{fill:lightgray;}#mermaid-svg-EENGvWRLcfDLFMo9 .disabled text{fill:#efefef;}#mermaid-svg-EENGvWRLcfDLFMo9 .section-5 rect,#mermaid-svg-EENGvWRLcfDLFMo9 .section-5 path,#mermaid-svg-EENGvWRLcfDLFMo9 .section-5 circle,#mermaid-svg-EENGvWRLcfDLFMo9 .section-5 polygon,#mermaid-svg-EENGvWRLcfDLFMo9 .section-5 path{fill:hsl(0, 100%, 76.2745098039%);}#mermaid-svg-EENGvWRLcfDLFMo9 .section-5 text{fill:black;}#mermaid-svg-EENGvWRLcfDLFMo9 .node-icon-5{font-size:40px;color:black;}#mermaid-svg-EENGvWRLcfDLFMo9 .section-edge-5{stroke:hsl(0, 100%, 76.2745098039%);}#mermaid-svg-EENGvWRLcfDLFMo9 .edge-depth-5{stroke-width:-1;}#mermaid-svg-EENGvWRLcfDLFMo9 .section-5 line{stroke:hsl(180, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-EENGvWRLcfDLFMo9 .disabled,#mermaid-svg-EENGvWRLcfDLFMo9 .disabled circle,#mermaid-svg-EENGvWRLcfDLFMo9 .disabled text{fill:lightgray;}#mermaid-svg-EENGvWRLcfDLFMo9 .disabled text{fill:#efefef;}#mermaid-svg-EENGvWRLcfDLFMo9 .section-6 rect,#mermaid-svg-EENGvWRLcfDLFMo9 .section-6 path,#mermaid-svg-EENGvWRLcfDLFMo9 .section-6 circle,#mermaid-svg-EENGvWRLcfDLFMo9 .section-6 polygon,#mermaid-svg-EENGvWRLcfDLFMo9 .section-6 path{fill:hsl(30, 100%, 76.2745098039%);}#mermaid-svg-EENGvWRLcfDLFMo9 .section-6 text{fill:black;}#mermaid-svg-EENGvWRLcfDLFMo9 .node-icon-6{font-size:40px;color:black;}#mermaid-svg-EENGvWRLcfDLFMo9 .section-edge-6{stroke:hsl(30, 100%, 76.2745098039%);}#mermaid-svg-EENGvWRLcfDLFMo9 .edge-depth-6{stroke-width:-4;}#mermaid-svg-EENGvWRLcfDLFMo9 .section-6 line{stroke:hsl(210, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-EENGvWRLcfDLFMo9 .disabled,#mermaid-svg-EENGvWRLcfDLFMo9 .disabled circle,#mermaid-svg-EENGvWRLcfDLFMo9 .disabled text{fill:lightgray;}#mermaid-svg-EENGvWRLcfDLFMo9 .disabled text{fill:#efefef;}#mermaid-svg-EENGvWRLcfDLFMo9 .section-7 rect,#mermaid-svg-EENGvWRLcfDLFMo9 .section-7 path,#mermaid-svg-EENGvWRLcfDLFMo9 .section-7 circle,#mermaid-svg-EENGvWRLcfDLFMo9 .section-7 polygon,#mermaid-svg-EENGvWRLcfDLFMo9 .section-7 path{fill:hsl(90, 100%, 76.2745098039%);}#mermaid-svg-EENGvWRLcfDLFMo9 .section-7 text{fill:black;}#mermaid-svg-EENGvWRLcfDLFMo9 .node-icon-7{font-size:40px;color:black;}#mermaid-svg-EENGvWRLcfDLFMo9 .section-edge-7{stroke:hsl(90, 100%, 76.2745098039%);}#mermaid-svg-EENGvWRLcfDLFMo9 .edge-depth-7{stroke-width:-7;}#mermaid-svg-EENGvWRLcfDLFMo9 .section-7 line{stroke:hsl(270, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-EENGvWRLcfDLFMo9 .disabled,#mermaid-svg-EENGvWRLcfDLFMo9 .disabled circle,#mermaid-svg-EENGvWRLcfDLFMo9 .disabled text{fill:lightgray;}#mermaid-svg-EENGvWRLcfDLFMo9 .disabled text{fill:#efefef;}#mermaid-svg-EENGvWRLcfDLFMo9 .section-8 rect,#mermaid-svg-EENGvWRLcfDLFMo9 .section-8 path,#mermaid-svg-EENGvWRLcfDLFMo9 .section-8 circle,#mermaid-svg-EENGvWRLcfDLFMo9 .section-8 polygon,#mermaid-svg-EENGvWRLcfDLFMo9 .section-8 path{fill:hsl(150, 100%, 76.2745098039%);}#mermaid-svg-EENGvWRLcfDLFMo9 .section-8 text{fill:black;}#mermaid-svg-EENGvWRLcfDLFMo9 .node-icon-8{font-size:40px;color:black;}#mermaid-svg-EENGvWRLcfDLFMo9 .section-edge-8{stroke:hsl(150, 100%, 76.2745098039%);}#mermaid-svg-EENGvWRLcfDLFMo9 .edge-depth-8{stroke-width:-10;}#mermaid-svg-EENGvWRLcfDLFMo9 .section-8 line{stroke:hsl(330, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-EENGvWRLcfDLFMo9 .disabled,#mermaid-svg-EENGvWRLcfDLFMo9 .disabled circle,#mermaid-svg-EENGvWRLcfDLFMo9 .disabled text{fill:lightgray;}#mermaid-svg-EENGvWRLcfDLFMo9 .disabled text{fill:#efefef;}#mermaid-svg-EENGvWRLcfDLFMo9 .section-9 rect,#mermaid-svg-EENGvWRLcfDLFMo9 .section-9 path,#mermaid-svg-EENGvWRLcfDLFMo9 .section-9 circle,#mermaid-svg-EENGvWRLcfDLFMo9 .section-9 polygon,#mermaid-svg-EENGvWRLcfDLFMo9 .section-9 path{fill:hsl(180, 100%, 76.2745098039%);}#mermaid-svg-EENGvWRLcfDLFMo9 .section-9 text{fill:black;}#mermaid-svg-EENGvWRLcfDLFMo9 .node-icon-9{font-size:40px;color:black;}#mermaid-svg-EENGvWRLcfDLFMo9 .section-edge-9{stroke:hsl(180, 100%, 76.2745098039%);}#mermaid-svg-EENGvWRLcfDLFMo9 .edge-depth-9{stroke-width:-13;}#mermaid-svg-EENGvWRLcfDLFMo9 .section-9 line{stroke:hsl(0, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-EENGvWRLcfDLFMo9 .disabled,#mermaid-svg-EENGvWRLcfDLFMo9 .disabled circle,#mermaid-svg-EENGvWRLcfDLFMo9 .disabled text{fill:lightgray;}#mermaid-svg-EENGvWRLcfDLFMo9 .disabled text{fill:#efefef;}#mermaid-svg-EENGvWRLcfDLFMo9 .section-10 rect,#mermaid-svg-EENGvWRLcfDLFMo9 .section-10 path,#mermaid-svg-EENGvWRLcfDLFMo9 .section-10 circle,#mermaid-svg-EENGvWRLcfDLFMo9 .section-10 polygon,#mermaid-svg-EENGvWRLcfDLFMo9 .section-10 path{fill:hsl(210, 100%, 76.2745098039%);}#mermaid-svg-EENGvWRLcfDLFMo9 .section-10 text{fill:black;}#mermaid-svg-EENGvWRLcfDLFMo9 .node-icon-10{font-size:40px;color:black;}#mermaid-svg-EENGvWRLcfDLFMo9 .section-edge-10{stroke:hsl(210, 100%, 76.2745098039%);}#mermaid-svg-EENGvWRLcfDLFMo9 .edge-depth-10{stroke-width:-16;}#mermaid-svg-EENGvWRLcfDLFMo9 .section-10 line{stroke:hsl(30, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-EENGvWRLcfDLFMo9 .disabled,#mermaid-svg-EENGvWRLcfDLFMo9 .disabled circle,#mermaid-svg-EENGvWRLcfDLFMo9 .disabled text{fill:lightgray;}#mermaid-svg-EENGvWRLcfDLFMo9 .disabled text{fill:#efefef;}#mermaid-svg-EENGvWRLcfDLFMo9 .section-root rect,#mermaid-svg-EENGvWRLcfDLFMo9 .section-root path,#mermaid-svg-EENGvWRLcfDLFMo9 .section-root circle,#mermaid-svg-EENGvWRLcfDLFMo9 .section-root polygon{fill:hsl(240, 100%, 46.2745098039%);}#mermaid-svg-EENGvWRLcfDLFMo9 .section-root text{fill:#ffffff;}#mermaid-svg-EENGvWRLcfDLFMo9 .section-root span{color:#ffffff;}#mermaid-svg-EENGvWRLcfDLFMo9 .section-2 span{color:#ffffff;}#mermaid-svg-EENGvWRLcfDLFMo9 .icon-container{height:100%;display:flex;justify-content:center;align-items:center;}#mermaid-svg-EENGvWRLcfDLFMo9 .edge{fill:none;}#mermaid-svg-EENGvWRLcfDLFMo9 .mindmap-node-label{dy:1em;alignment-baseline:middle;text-anchor:middle;dominant-baseline:middle;text-align:center;}#mermaid-svg-EENGvWRLcfDLFMo9 :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}

KES-Operator

自动化部署

声明式配置

自动创建资源

减少人工操作

持续状态管理

控制器机制

状态监测比对

自动协调资源

灵活扩缩容

集群扩容

集群缩容

按需调整节点

物理备份与监控

物理备份任务

KMonitor监控

统一集中管理

从集群创建到运行维护,覆盖KES常用管理场景

围绕KES集群在Kubernetes环境中的部署和运行维护,KES-Operator提供了以下管理能力。

1

自动化部署,让KES集群快速运行

在Kubernetes环境中,数据库集群部署涉及多个资源对象配置。KES-Operator采用声明式管理方式,用户只需通过配置文件定义KES集群期望状态,配置完成后,由KES-Operator自动创建相关资源,减少人工逐项配置。

在这里插入图片描述

KES集群部署过程

2

持续状态管理,让数据库集群保持目标状态

数据库集群部署完成后,运行过程中的状态维护同样重要。KES-Operator通过Kubernetes控制器机制,持续监测数据库集群实际运行状态,并与用户定义的期望状态进行比对。当实际状态与期望状态出现偏差时,KES-Operator根据配置协调相关Kubernetes资源,使KES集群保持稳定运行。通过持续状态管理,减少人工检查和处理。

在这里插入图片描述

数据库集群状态调整过程

3

灵活扩缩容,满足业务变化需求

随着业务变化,数据库资源需求也会随之调整。KES-Operator支持KES集群扩容与缩容管理,用户可以根据实际需求调整集群节点规模,修改集群配置后,KES-Operator根据新的配置完成相应资源调整。

在这里插入图片描述

KES集群扩缩容过程

4

物理备份与监控管理

要保障数据库长期稳定运行,除了日常状态管理,还需要完善的数据保护与监控能力。KES-Operator支持KES物理备份管理,用户可以通过配置创建和管理备份任务;同时支持KMonitor监控组件管理,用于查看KES集群运行状态。备份任务和监控信息都可以在Kubernetes环境中统一管理,日常维护更加集中。

在这里插入图片描述

备份任务展示

在这里插入图片描述

监控展示

KES-Operator正式发布后,KES集群可以纳入Kubernetes体系进行管理,部署、状态维护、扩缩容、备份和监控等操作也有了统一的管理方式。未来,电科金仓将继续完善KES-Operator相关能力,满足KES在Kubernetes环境中的更多使用和运维需求。

KES-Operator现已正式发布。

下面通过一个示例,演示如何使用 KES-Operator 声明式地部署一个 KES 集群:

apiVersion: kes.kingbase.com/v1
kind: KesCluster
metadata:
name: kesclusterdemo
namespace: kessystem
spec:
# 集群节点规模
replicas: 3

# 数据库版本
version: "V8"

# 计算资源
resources:
requests:
cpu: "2"
memory: 4Gi
limits:
cpu: "4"
memory: 8Gi

# 存储配置
storage:
storageClassName: standard
size: 100Gi

# 备份配置
backup:
enabled: true
schedule: "0 2 * * *"
retention: 7

# 监控配置
monitor:
enabled: true
kMonitorVersion: "1.0"

部署完成后,可以通过以下命令查看集群状态:

# 查看 KES 集群列表
kubectl get kesclusters -n kes-system

# 查看 KES 集群详细信息
kubectl describe kescluster kes-cluster-demo -n kes-system

# 查看集群 Pod 状态
kubectl get pods -n kes-system -l app=kes-cluster-demo

当业务增长需要扩容时,只需修改配置中的 replicas 字段并重新应用:

# 将集群节点从 3 个扩容到 5 个
kubectl patch kescluster kes-cluster-demo -n kes-system \\
–type merge -p '{"spec":{"replicas":5}}'

KES-Operator 会自动感知配置变更,并协调相关 Kubernetes 资源完成扩缩容操作,整个过程无需人工干预。


转载自:https://blog.csdn.net/u014727709/article/details/164431755 欢迎 👍点赞✍评论⭐收藏,欢迎指正

赞(0)
未经允许不得转载:171主机测评 » KES-Operator:K8s 数据库集群自动化运维方案
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址