KubeBlocks把所有數(shù)據(jù)庫運行到K8s上_第1頁
KubeBlocks把所有數(shù)據(jù)庫運行到K8s上_第2頁
KubeBlocks把所有數(shù)據(jù)庫運行到K8s上_第3頁
KubeBlocks把所有數(shù)據(jù)庫運行到K8s上_第4頁
KubeBlocks把所有數(shù)據(jù)庫運行到K8s上_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

KubeBlocks:

把所有數(shù)據(jù)庫都運行到

K8sK8siseatingthe

worldGKEEKSACKAKSOpenShift Rancher阿里云AWSGCPAzure物理機(jī)PODservicePVC/PVsecretconfigmapTaintAffinityeventTolerationAnti-AffinityAppWorkflow業(yè)務(wù)開發(fā)K8sInternal

Developer

Platform

/

平臺工程Endpoint Database Schema ACLK8siseatingthe

worldYAMListheprogramminglanguageof

DevOps傳統(tǒng)data

infra

control

plane——煙囪式架構(gòu)體驗不一致系統(tǒng)預(yù)期行為不一致引

擎運維操

作環(huán)

境業(yè)務(wù)引入新引擎成本高Conway's

LawDBPaaSAPI&

PortalMySQL管控PG管控MongoDB管控Redis管控OLAP管控ES,Kafka,ClickHouse,……HA備份恢復(fù)遷移監(jiān)控報警審計容災(zāi)資源調(diào)度云(虛擬機(jī))物理機(jī)存儲容器網(wǎng)絡(luò)升級賬號擴(kuò)縮容授權(quán)安全企業(yè)對云原生的data infra control

plane的需求§ 支持

IaC

實踐§ 提供聲明式

APIK8s

APIAutomation§ 學(xué)習(xí)曲線類似§ 支持新業(yè)務(wù)擴(kuò)展新引擎通過抽象和擴(kuò)展API實現(xiàn)對多種數(shù)據(jù)庫的統(tǒng)一管理K8s

APIkbcli領(lǐng)域模型YAML低代碼擴(kuò)展PodSchedulerCSI……生命周期配置管理備份還原高可用賬號管理監(jiān)控日志MySQL

CRRedis

CRPG

CRMongoDB

CRKafka

CRPulsar

CRStarRocks

CROceanBase

CR……K8s容器編排聲明式

API人工操作KubeBlocks

CloudIaC自動化OpenAPI擴(kuò)展APIKubeBlocks

API對分布式數(shù)據(jù)庫的拓?fù)溥M(jìn)行抽象Cluster&ClusterDefinitionComponent&ComponentDefinitionInstanceSetInstanceK8s

抽象PodPVCConfigmapServiceTolerationAffinity……抽象把KubeBlocks

API映射到數(shù)據(jù)庫

MySQLCluster:MySQLComponent:MySQLInstanceSetInstancePodPVCService抽象InstanceInstanceComponent:OrchestratorInstanceSetInstanceInstanceInstanceComponent:ProxyInstanceSetInstanceInstancePodServicePodService把KubeBlocks

API映射到數(shù)據(jù)庫

OceanBaseCluster:Oceanbase-paxosComponent:OceanbaseInstanceSetInstancePodPVCService抽象InstanceInstance把KubeBlocks

API映射到數(shù)據(jù)庫

OceanBase主備Cluster:Oceanbase-masterslaveComponent:Oceanbase-replComponent:Oceanbase-replInstanceSetInstanceInstanceSetInstancePodPVCServicePodPVCService抽象把KubeBlocks

API映射到數(shù)據(jù)庫

MogDBCluster:MogDB-masterslaveComponent:mogdbInstanceSet抽象InstanceInstancePodPVCService把KubeBlocks

API映射到數(shù)據(jù)庫

Redis主備Cluster:Redis-masterslaveComponent:RedisComponent:SentinelInstanceSetInstanceSetInstanceInstanceInstancePodPVCService抽象InstanceInstancePodPVCService把KubeBlocks

API映射到數(shù)據(jù)庫

Redis

ClusterCluster:Redis-clusterComponent:redisComponent:redisComponent:redisComponent:redisComponent:redisInstanceSetInstanceSetInstanceSetInstanceSetInstanceSet抽象InstanceInstanceInstanceInstanceInstanceInstanceInstanceInstanceInstanceInstancePodPVCServicePodPVCServicePodPVCServicePodPVCServicePodPVCService把KubeBlocks

API映射到數(shù)據(jù)庫

KafkaCluster:

kafkaComponent:brokerComponent:controllerComponent:exporterInstanceSetInstanceSetInstanceSetInstanceInstanceInstanceInstanceInstancePodPVCService抽象InstanceInstanceInstancePodPVCServiceInstancePod把KubeBlocks

API映射到數(shù)據(jù)庫

PulsarCluster:

pulsarComponent:pulsar-brokerComponent:pulsar-proxyComponent:bookiesComponent:zookeeperInstanceSetInstanceSetInstanceSetInstanceSetInstanceInstanceInstanceInstanceInstanceInstanceInstanceInstancePodPVCServicePodPVCService抽象InstanceInstanceInstanceInstanceInstancePodPVCServiceInstanceInstanceInstanceInstanceInstancePodPVCService不同層次KubeBlocks

API的不同用途分層Cluster&ClusterDefinitionComponent&ComponentDefinitionInstanceSetInstanceK8s

抽象PodPVCConfigmapServiceTolerationAffinity……表達(dá)一個分布式集群內(nèi)多個Component的拓?fù)潢P(guān)系表達(dá)一個分布式集群內(nèi)Component之間的啟動依賴順序表達(dá)一個分布式集群內(nèi)Component之間的引用關(guān)系(服務(wù)、配置)管理Cluster對外暴露的Service不同層次KubeBlocks

API的不同用途分層Cluster&ClusterDefinitionComponent&ComponentDefinitionInstanceSetInstanceK8s

抽象PodPVCConfigmapServiceTolerationAffinity……描述單個組件的鏡像、配置模板、運行腳本、監(jiān)控日志采集等通過Actions描述單個組件的行為分布式數(shù)據(jù)庫通過動態(tài)增減Component可以實現(xiàn)shardsscale-in/out不同層次KubeBlocks

API的不同用途分層PodPVCConfigmapServiceTolerationAffinity……管理一個復(fù)制集中多個副本間的復(fù)制關(guān)系和每個副本的角色管理外部負(fù)載均衡器到副本的路由管理升級、重啟多個副本的順序和并發(fā)策略管理指定副本的上線、下線支持不同的副本有不同鏡像、配置和資源需求Cluster&ClusterDefinitionComponent&ComponentDefinitionInstanceSetInstanceK8s

抽象不同層次KubeBlocks

API的不同用途分層Cluster&ClusterDefinitionComponent&ComponentDefinitionInstanceSetInstanceK8s

抽象PodPVCConfigmapServiceTolerationAffinity……管理磁盤的擴(kuò)容、縮容管理多IP/host

network地址/nodeport地址/LB地址等支持?jǐn)?shù)據(jù)庫插件、工具的動態(tài)加載支持Auto-Scale通過擴(kuò)展API定義不同數(shù)據(jù)庫的差異Cluster&ClusterDefinitionComponent&ComponentDefinitionInstanceSetInstanceK8s

抽象PodPVCConfigmapServiceTolerationAffinity……不同Cluster具有不同的拓?fù)浜徒M件不同Component的模板和行為也不一樣需要通過ClusterDefinition和ComponentDefinitionAPI來編碼(YAML)低代碼的開發(fā)KubeBlocks插件擴(kuò)展低代碼插件擴(kuò)展新引擎

案例

向量數(shù)據(jù)庫Qdrant1每個組件如何配置和啟動配置文件 啟動腳本服務(wù)端口要創(chuàng)建哪些組件Qdrant-web-ui瀏覽器客戶端Qdrant計算+存儲層Qdrant-Tools內(nèi)置運維工具擴(kuò)展低代碼插件擴(kuò)展新引擎

案例

向量數(shù)據(jù)庫Qdrant2ClusterDefinition.yaml定義集群拓?fù)浜徒M件配置,每個集群一個,為每個組件填寫volumeMounts數(shù)據(jù)文件和日志文件目錄configSpec配置文件scriptSpec腳本文件command,ports啟動命令和服務(wù)端口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擴(kuò)展低代碼插件擴(kuò)展新引擎

案例

向量數(shù)據(jù)庫Qdrant3addon.yaml描述Qdrant,

指定是否默認(rèn)安裝等信息*

KubeBlocks

CICD

流程會自動創(chuàng)建

qdrant.tgz,開發(fā)者不需要關(guān)心Qdrant

Addon配置

Qdrant

Addon

要寫多少代碼?開發(fā)時間~2周低代碼行數(shù)~2000行配置yaml:~600scripts:~200configs:~200json:

~1200kind:

Addonmetadata:name:

qdrantspec:description:Qdrantisanopensourcevectorsimilaritysearch.helm:chartLocationURL:https://.../charts/qdrant.tgz*installable:autoInstall:

falsetype:

Helm擴(kuò)展低代碼插件擴(kuò)展新引擎

案例

向量數(shù)據(jù)庫Qdrant*Richday-2

operations2步創(chuàng)建集群Step

1:

打開

addonStep

2:

創(chuàng)建

myqdrantStep

X:

集群運維kbcliaddonenable

qdrantkbcliclustercreatemyqdrant--cluster-definition

qdrantkbclicluster<ops>

myqdrant運維任務(wù) 支持情況Stop/Start YRestart YUpgrade YVolume-Expand

YVScale YHScale YBackup/Restore Y擴(kuò)展像搭樂高積木一樣標(biāo)準(zhǔn)與高效的在K8s上組裝數(shù)據(jù)庫基礎(chǔ)設(shè)施拆解元件(Component)基于KubeBlocks(Addon)組裝式搭建(Cluster)組裝通過Component靈活組裝Redis的多種部署形態(tài)1.

單節(jié)點SSS2.

主從+SentinelHASSS3.RedisProxy+RedisShards+

SentinelHARedis

Proxy4.Redis

Cluster組裝為企業(yè)在

K8s

上搭建統(tǒng)一管理多種數(shù)據(jù)庫的

DBPaaS性能KubeBlocks針對容器和云環(huán)境對MySQL與PostgreSQL數(shù)據(jù)庫的內(nèi)核和參數(shù)進(jìn)行優(yōu)化,性能超過同規(guī)格RDS??捎眯訩ubeBlocks支持多種數(shù)據(jù)庫的高可用集群配置??捎^察性KubeBlocks從豐富的數(shù)據(jù)源采集監(jiān)控指標(biāo),集成了Prometheus堆棧,并提供了富有洞察力的Grafana模板。此外,還提供慢日志等排查工具。可擴(kuò)展性KubeBlocks對接入一個新的數(shù)據(jù)庫引擎提供了良好的抽象,通過addon機(jī)制可以快速集成,并提供一致的使用體驗和預(yù)期行為。KubeBlocks

是一個開源的在

K8s

上運行和管理數(shù)據(jù)基礎(chǔ)設(shè)施的系統(tǒng)軟件,它幫助開發(fā)人員、SRE、平臺工程師在企業(yè)中部署和維護(hù)專用的DBPaaS,并支持多種公共云和私有云環(huán)境。為數(shù)據(jù)庫運維提供豐富的

Day-2

Operations集群管理水平伸縮垂直伸縮存儲擴(kuò)容參數(shù)設(shè)置重啟停止/啟動版本升級賬號管理可觀測性備份恢復(fù)內(nèi)置

Prometheus與外部監(jiān)控系統(tǒng)無縫集成多層級監(jiān)控大盤IM/EMAIL

報警基于快照的自動備份集成流行的備份工具保存在低成本的對象存儲全量恢復(fù)/按時間點恢復(fù)高可用數(shù)據(jù)遷移FailoverSwitchover可配置的故障隔離級別內(nèi)置遷移工具外部數(shù)據(jù)庫導(dǎo)入mysql2mysqlpg2pg異構(gòu)遷移混沌測試性能測試故障注入

Fault-inject故障觀測

NyancatBench-

tpccBench-

fio基礎(chǔ)插件三方引擎PrometheusCsi-s3-driverNebulaRisingWaveqdrantweaviateMilvusGrafanaAws

loadbalancercontrollerPikaKubeBlocks

高可用架構(gòu)設(shè)計支持多種數(shù)據(jù)庫的高可用集群配置LeaderFollowerFollowerPaxosOceanBasePostgreSQLPrimaryPostgresPatroniSecondaryPostgresPatroniSentinelMasterSlaveRedisOrchestratorMasterSlaveMySQL角色/健康探測探測節(jié)點可用性切換角色

Label控制粒度到Pod滾動更新,控制節(jié)點變更順序計劃內(nèi)角色切換容災(zāi)調(diào)度策略不同節(jié)點部署不同可用區(qū)部署支持集成第三方高可用組件可定制健康探測,結(jié)合系統(tǒng)信息綜合判斷節(jié)點異常時提供自修復(fù)能力SSenetnintienlelKubeBlocks

備份恢復(fù)設(shè)計Backup

CRBackupPolicy

CRBackupSchedule

CRActionSet

CRBackupRepo

CRStorageProvider

CRRestore

CRDataProtection

ControllersGC

ControllerDB

PodBackup

Jobcsi-s3對象存儲miniogcscosobsosss3VolumeSnapshots備份方法卷快照備份備份工具備份,如

xtrabackup,pg_basebackup

等觸發(fā)方式按需備份自動備份備份類型全量備份持續(xù)備份(PITR)備份倉庫兼容

S3

協(xié)議的多云的對象存儲MinIONAS其他存儲NAS備份監(jiān)控ü

備份中心對備份成功率、備份速度進(jìn)行實時監(jiān)控ü

備份倉庫存儲用量的監(jiān)控備份保存ü

備份可保存在本地NAS設(shè)備,也可保存到云端對象存儲ü

已刪除集群的備份可永久保留,可自定義保留最近一份備份,或者保留全部備份備份恢復(fù)ü

支持備份集恢復(fù)和時間點恢復(fù),數(shù)據(jù)零丟失ü

發(fā)起恢復(fù)時可選擇同環(huán)境恢復(fù)或者跨環(huán)境恢復(fù),通過跨環(huán)境恢復(fù)可實現(xiàn)異地災(zāi)備KubeBlocks

可觀測性設(shè)計Oteld

CRMonitorDefinitionCRLogsExporterSinkCRMetricsExporterSinkCROtel

OperatorBackend

storageprometheusVictoriaMetricsdatadogclickhousekafkaNodeelasticsearchlokis3DB-Pod-0db-containerDB-Pod-ndb-containerDaemonsetOteldCollectorSinkpluginsNodeDashboardExternalMonitoringWriteReadRead現(xiàn)代可觀測性技術(shù)棧ü

基于OpenTelemetry標(biāo)準(zhǔn)設(shè)計監(jiān)控系統(tǒng)的接口和數(shù)據(jù)格式,使得跨系統(tǒng)的分析更加高效ü

Prometheus/vm用于收集監(jiān)控指標(biāo),Grafana負(fù)責(zé)可視化,loki用于日志收集與查詢多樣化監(jiān)控插件ü通

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論