版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
KubeBlocks:
把所有数据库都运行到
K8sK8siseatingthe
worldGKEEKSACKAKSOpenShift Rancher阿里云AWSGCPAzure物理机PODservicePVC/PVsecretconfigmapTaintAffinityeventTolerationAnti-AffinityAppWorkflow业务开发K8sInternal
Developer
Platform
/
平台工程Endpoint Database Schema ACLK8siseatingthe
worldYAMListheprogramminglanguageof
DevOps传统data
infra
control
plane——烟囱式架构体验不一致系统预期行为不一致引
擎运维操
作环
境业务引入新引擎成本高Conway's
LawDBPaaSAPI&
PortalMySQL管控PG管控MongoDB管控Redis管控OLAP管控ES,Kafka,ClickHouse,……HA备份恢复迁移监控报警审计容灾资源调度云(虚拟机)物理机存储容器网络升级账号扩缩容授权安全企业对云原生的data infra control
plane的需求§ 支持
IaC
实践§ 提供声明式
APIK8s
APIAutomation§ 学习曲线类似§ 支持新业务扩展新引擎通过抽象和扩展API实现对多种数据库的统一管理K8s
APIkbcli领域模型YAML低代码扩展PodSchedulerCSI……生命周期配置管理备份还原高可用账号管理监控日志MySQL
CRRedis
CRPG
CRMongoDB
CRKafka
CRPulsar
CRStarRocks
CROceanBase
CR……K8s容器编排声明式
API人工操作KubeBlocks
CloudIaC自动化OpenAPI扩展APIKubeBlocks
API对分布式数据库的拓扑进行抽象Cluster&ClusterDefinitionComponent&ComponentDefinitionInstanceSetInstanceK8s
抽象PodPVCConfigmapServiceTolerationAffinity……抽象把KubeBlocks
API映射到数据库
–
MySQLCluster:MySQLComponent:MySQLInstanceSetInstancePodPVCService抽象InstanceInstanceComponent:OrchestratorInstanceSetInstanceInstanceInstanceComponent:ProxyInstanceSetInstanceInstancePodServicePodService把KubeBlocks
API映射到数据库
–
OceanBaseCluster:Oceanbase-paxosComponent:OceanbaseInstanceSetInstancePodPVCService抽象InstanceInstance把KubeBlocks
API映射到数据库
–
OceanBase主备Cluster:Oceanbase-masterslaveComponent:Oceanbase-replComponent:Oceanbase-replInstanceSetInstanceInstanceSetInstancePodPVCServicePodPVCService抽象把KubeBlocks
API映射到数据库
–
MogDBCluster:MogDB-masterslaveComponent:mogdbInstanceSet抽象InstanceInstancePodPVCService把KubeBlocks
API映射到数据库
–
Redis主备Cluster:Redis-masterslaveComponent:RedisComponent:SentinelInstanceSetInstanceSetInstanceInstanceInstancePodPVCService抽象InstanceInstancePodPVCService把KubeBlocks
API映射到数据库
–
Redis
ClusterCluster:Redis-clusterComponent:redisComponent:redisComponent:redisComponent:redisComponent:redisInstanceSetInstanceSetInstanceSetInstanceSetInstanceSet抽象InstanceInstanceInstanceInstanceInstanceInstanceInstanceInstanceInstanceInstancePodPVCServicePodPVCServicePodPVCServicePodPVCServicePodPVCService把KubeBlocks
API映射到数据库
–
KafkaCluster:
kafkaComponent:brokerComponent:controllerComponent:exporterInstanceSetInstanceSetInstanceSetInstanceInstanceInstanceInstanceInstancePodPVCService抽象InstanceInstanceInstancePodPVCServiceInstancePod把KubeBlocks
API映射到数据库
–
PulsarCluster:
pulsarComponent:pulsar-brokerComponent:pulsar-proxyComponent:bookiesComponent:zookeeperInstanceSetInstanceSetInstanceSetInstanceSetInstanceInstanceInstanceInstanceInstanceInstanceInstanceInstancePodPVCServicePodPVCService抽象InstanceInstanceInstanceInstanceInstancePodPVCServiceInstanceInstanceInstanceInstanceInstancePodPVCService不同层次KubeBlocks
API的不同用途分层Cluster&ClusterDefinitionComponent&ComponentDefinitionInstanceSetInstanceK8s
抽象PodPVCConfigmapServiceTolerationAffinity……表达一个分布式集群内多个Component的拓扑关系表达一个分布式集群内Component之间的启动依赖顺序表达一个分布式集群内Component之间的引用关系(服务、配置)管理Cluster对外暴露的Service不同层次KubeBlocks
API的不同用途分层Cluster&ClusterDefinitionComponent&ComponentDefinitionInstanceSetInstanceK8s
抽象PodPVCConfigmapServiceTolerationAffinity……描述单个组件的镜像、配置模板、运行脚本、监控日志采集等通过Actions描述单个组件的行为分布式数据库通过动态增减Component可以实现shardsscale-in/out不同层次KubeBlocks
API的不同用途分层PodPVCConfigmapServiceTolerationAffinity……管理一个复制集中多个副本间的复制关系和每个副本的角色管理外部负载均衡器到副本的路由管理升级、重启多个副本的顺序和并发策略管理指定副本的上线、下线支持不同的副本有不同镜像、配置和资源需求Cluster&ClusterDefinitionComponent&ComponentDefinitionInstanceSetInstanceK8s
抽象不同层次KubeBlocks
API的不同用途分层Cluster&ClusterDefinitionComponent&ComponentDefinitionInstanceSetInstanceK8s
抽象PodPVCConfigmapServiceTolerationAffinity……管理磁盘的扩容、缩容管理多IP/host
network地址/nodeport地址/LB地址等支持数据库插件、工具的动态加载支持Auto-Scale通过扩展API定义不同数据库的差异Cluster&ClusterDefinitionComponent&ComponentDefinitionInstanceSetInstanceK8s
抽象PodPVCConfigmapServiceTolerationAffinity……不同Cluster具有不同的拓扑和组件不同Component的模板和行为也不一样需要通过ClusterDefinition和ComponentDefinitionAPI来编码(YAML)低代码的开发KubeBlocks插件扩展低代码插件扩展新引擎
–
案例
向量数据库Qdrant1每个组件如何配置和启动配置文件 启动脚本服务端口要创建哪些组件Qdrant-web-ui浏览器客户端Qdrant计算+存储层Qdrant-Tools内置运维工具扩展低代码插件扩展新引擎
–
案例
向量数据库Qdrant2ClusterDefinition.yaml定义集群拓扑和组件配置,每个集群一个,为每个组件填写volumeMounts数据文件和日志文件目录configSpec配置文件scriptSpec脚本文件command,ports启动命令和服务端口ClusterVersion.yaml为每个组件填写:
Image
信息kind:
ClusterDefinitionmetadata:name:qdrantspec:componentDefs:-name:qdrant
configSpecs:…monitor:…scriptSpecs:…podSpec:containers:-command:
ports:…
volumeMounts:…kind:
ClusterVersionmetadata:name:qdrant-1.5.0spec:clusterDefinitionRef:
qdrantcomponentVersions:componentDefRef:
qdrant
versionsContext:containers:image:qdrant:v1.5.0name:
qdrantimage:qdrant-web-ui:latest
name:web-uiimage:curl-jq:latestname:
qdrant-tools扩展低代码插件扩展新引擎
–
案例
向量数据库Qdrant3addon.yaml描述Qdrant,
指定是否默认安装等信息*
KubeBlocks
的
CICD
流程会自动创建
qdrant.tgz,开发者不需要关心Qdrant
Addon配置
Qdrant
Addon
要写多少代码?开发时间~2周低代码行数~2000行配置yaml:~600scripts:~200configs:~200json:
~1200kind:
Addonmetadata:name:
qdrantspec:description:Qdrantisanopensourcevectorsimilaritysearch.helm:chartLocationURL:https://.../charts/qdrant.tgz*installable:autoInstall:
falsetype:
Helm扩展低代码插件扩展新引擎
–
案例
向量数据库Qdrant*Richday-2
operations2步创建集群Step
1:
打开
addonStep
2:
创建
myqdrantStep
X:
集群运维kbcliaddonenable
qdrantkbcliclustercreatemyqdrant--cluster-definition
qdrantkbclicluster<ops>
myqdrant运维任务 支持情况Stop/Start YRestart YUpgrade YVolume-Expand
YVScale YHScale YBackup/Restore Y扩展像搭乐高积木一样标准与高效的在K8s上组装数据库基础设施拆解元件(Component)基于KubeBlocks(Addon)组装式搭建(Cluster)组装通过Component灵活组装Redis的多种部署形态1.
单节点SSS2.
主从+SentinelHASSS3.RedisProxy+RedisShards+
SentinelHARedis
Proxy4.Redis
Cluster组装为企业在
K8s
上搭建统一管理多种数据库的
DBPaaS性能KubeBlocks针对容器和云环境对MySQL与PostgreSQL数据库的内核和参数进行优化,性能超过同规格RDS。可用性KubeBlocks支持多种数据库的高可用集群配置。可观察性KubeBlocks从丰富的数据源采集监控指标,集成了Prometheus堆栈,并提供了富有洞察力的Grafana模板。此外,还提供慢日志等排查工具。可扩展性KubeBlocks对接入一个新的数据库引擎提供了良好的抽象,通过addon机制可以快速集成,并提供一致的使用体验和预期行为。KubeBlocks
是一个开源的在
K8s
上运行和管理数据基础设施的系统软件,它帮助开发人员、SRE、平台工程师在企业中部署和维护专用的DBPaaS,并支持多种公共云和私有云环境。为数据库运维提供丰富的
Day-2
Operations集群管理水平伸缩垂直伸缩存储扩容参数设置重启停止/启动版本升级账号管理可观测性备份恢复内置
Prometheus与外部监控系统无缝集成多层级监控大盘IM/EMAIL
报警基于快照的自动备份集成流行的备份工具保存在低成本的对象存储全量恢复/按时间点恢复高可用数据迁移FailoverSwitchover可配置的故障隔离级别内置迁移工具外部数据库导入mysql2mysqlpg2pg异构迁移混沌测试性能测试故障注入
Fault-inject故障观测
NyancatBench-
tpccBench-
fio基础插件三方引擎PrometheusCsi-s3-driverNebulaRisingWaveqdrantweaviateMilvusGrafanaAws
loadbalancercontrollerPikaKubeBlocks
高可用架构设计支持多种数据库的高可用集群配置LeaderFollowerFollowerPaxosOceanBasePostgreSQLPrimaryPostgresPatroniSecondaryPostgresPatroniSentinelMasterSlaveRedisOrchestratorMasterSlaveMySQL角色/健康探测探测节点可用性切换角色
Label控制粒度到Pod滚动更新,控制节点变更顺序计划内角色切换容灾调度策略不同节点部署不同可用区部署支持集成第三方高可用组件可定制健康探测,结合系统信息综合判断节点异常时提供自修复能力SSenetnintienlelKubeBlocks
备份恢复设计Backup
CRBackupPolicy
CRBackupSchedule
CRActionSet
CRBackupRepo
CRStorageProvider
CRRestore
CRDataProtection
ControllersGC
ControllerDB
PodBackup
Jobcsi-s3对象存储miniogcscosobsosss3VolumeSnapshots备份方法卷快照备份备份工具备份,如
xtrabackup,pg_basebackup
等触发方式按需备份自动备份备份类型全量备份持续备份(PITR)备份仓库兼容
S3
协议的多云的对象存储MinIONAS其他存储NAS备份监控ü
备份中心对备份成功率、备份速度进行实时监控ü
备份仓库存储用量的监控备份保存ü
备份可保存在本地NAS设备,也可保存到云端对象存储ü
已删除集群的备份可永久保留,可自定义保留最近一份备份,或者保留全部备份备份恢复ü
支持备份集恢复和时间点恢复,数据零丢失ü
发起恢复时可选择同环境恢复或者跨环境恢复,通过跨环境恢复可实现异地灾备KubeBlocks
可观测性设计Oteld
CRMonitorDefinitionCRLogsExporterSinkCRMetricsExporterSinkCROtel
OperatorBackend
storageprometheusVictoriaMetricsdatadogclickhousekafkaNodeelasticsearchlokis3DB-Pod-0db-containerDB-Pod-ndb-containerDaemonsetOteldCollectorSinkpluginsNodeDashboardExternalMonitoringWriteReadRead现代可观测性技术栈ü
基于OpenTelemetry标准设计监控系统的接口和数据格式,使得跨系统的分析更加高效ü
Prometheus/vm用于收集监控指标,Grafana负责可视化,loki用于日志收集与查询多样化监控插件ü通
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 保险小活动策划方案(3篇)
- 大秦古筝活动策划方案(3篇)
- 电务施工方案措施(3篇)
- 冬季车辆施工方案(3篇)
- 展品活动拍摄方案策划(3篇)
- 黑车衣施工方案(3篇)
- 旅游景点服务规范与标准(标准版)
- 颐和园旅游景区营销方案
- 2025年中职(水文地质与工程地质勘查)水质勘查阶段测试题及答案
- 2025年大学大二(历史学)历史学创新项目考核测试题及解析
- 烟花爆竹安全生产会议
- 绿化养护中病虫害重点难点及防治措施
- 学堂在线 雨课堂 学堂云 工程伦理2.0 章节测试答案
- 生态旅游区建设场地地质灾害危险性评估报告
- 网络传播法规(自考14339)复习题库(含答案)
- 民办学校退费管理制度
- T/CIE 115-2021电子元器件失效机理、模式及影响分析(FMMEA)通用方法和程序
- 广东省江门市蓬江区2025年七年级上学期语文期末考试试卷及答案
- 苏州市施工图无障碍设计专篇参考样式(试行)2025
- 等腰三角形重难点题型归纳(七大类型)原卷版-2024-2025学年北师大版八年级数学下册重难点题型突破
- 临时用电变压器安装方案
评论
0/150
提交评论