《KubeBlocks 在K8s上運行生產級的 OceanBase_曹偉.pdf》由會員分享,可在線閱讀,更多相關《KubeBlocks 在K8s上運行生產級的 OceanBase_曹偉.pdf(24頁珍藏版)》請在三個皮匠報告上搜索。
1、Runs production-level OceanBase on K8s曹偉云猿生數據創始人&CEO在K8s上運行生產級 OceanBase前阿里云數據庫總經理/研究員,云原生數據庫PolarDB創始人。中國計算機學會數據庫專委會、開源專委會執行專委,獲得 2020 年中國電子學會科技進步一等獎,在SIGMOD、VLDB、ICDE、FAST、USENIX ATC 等數據庫與存儲國際頂級學術會議發表論文 20 余篇。云猿生數據創始人/CEOK8s is eating the worldGKEEKSACKAKSOpenShiftRancher阿里云AWSGCPAzure物理機PODservic
2、ePVC/PVsecretconfigmapTaintTolerationAffinityAnti-AffinityeventAppInternal Developer Platform/平臺工程DatabaseWorkflow業 務 開 發SchemaEndpointK8sACLK8s is eating the worldYAML is the programming language of DevOps#YAML#YAMLDEV#YAMLSTAGE#YAMLMASTER傳統data infra control plane煙囪式架構DBPaaS API&PortalHA備份恢復遷移監控報警
3、審計擴縮容容災升級賬號授權運維操作引擎資源調度云(虛擬機)物理機容器存儲網絡安全環境體驗不一致系統預期行為不一致業務引入新引擎成本高Conways Law企業對云原生的data infra control plane的需求K8s 原生多云(包括混合云)支持多種數據庫引擎 學習曲線類似DevOps 友好 支持 IaC 實踐 提供聲明式 APIK8s APIAutomation 支持新業務擴展新引擎通過抽象和擴展 API 實現對多種數據庫的統一管理K8s APIkbcliKubeBlocks CloudPodSchedulerCSI生命周期高可用配置管理備份還原賬號管理監控日志MySQL CRRe
4、dis CRPG CRMongoDB CRKafka CRPulsar CR ES CROceanBase CR聲明式 APIOpenAPI人工操作IaC自動化擴展APIK8s容器編排領域模型YAML低代碼擴展KubeBlocks API 對分布式數據庫的拓撲進行抽象K8s 抽象PodPVCConfigmapServiceTolerationAffinitiyInstanceInstanceSetComponent&ComponentDefinitionCluster&ClusterDefinition把 KubeBlocks API 映射到數據庫 OceanBaseCluster:Ocean
5、Base-paxosComponent:OceanBaseInstanceSetInstanceInstanceInstancePodPVCService把 KubeBlocks API 映射到數據庫 OceanBase 主備Cluster:OceanBase-masterslaveComponent:OceanBase-replInstanceSetPodPVCServiceInstanceComponent:OceanBase-replInstanceSetPodPVCServiceInstance理解 OceanBase 架構1低代碼插件擴展新引擎 案例 OceanBaseOceanBa
6、se Architecture要創建哪些組件每個組件如何配置和啟動配置文件啟動腳本 服務端口OBServerZone1OBServerOBServerOBServerZone2OBServerOBServerOBServerZone3OBServerOBServerOBServer創建集群模版2低代碼插件擴展新引擎 案例 OceanBaseComponentDefinition.yamlkind:ComponentDefinitionmetadata:name:oceanbasespec:-serviceKind:#服務類型 services:#對外提供的服務端口configs:#配置文件 s
7、cripts:#腳本文件 runtime:#運行時containers:-command:ports:volumeMounts:lifecycleActions:#生命周期管理 roleProbe:#自定義角色探測定義組件模板,每個組件一個,需要填寫volumeMounts數據/日志文件目錄configSpec配置文件scriptSpec腳本文件services內部/外部服務定義組件拓撲和組件配置,主要描述:Runtime 描述組件運行時信息,例如ContainersConfigs:渲染并掛載用戶配置文件,參數約束,參數配置等Scripts:渲染并掛載用戶腳本文件,自定義環境變量等Servic
8、es:組件對外提供的服務端口和協議LifecycleActions:常見的生命周期管理的任務,例如角色探測lifecycleActions組件的行為添加 Addon 配置文件3低代碼插件擴展新引擎 案例 OceanBaseaddon.yaml描述OceanBase,指定是否默認安裝等信息kind:Addonmetadata:name:oceanbasespec:description:OceanBase Database is an enterprise-level native distributed database independently developed by Ant Group
9、 helm:chartLocationURL:https:/./charts/oceanbase.tgz*installable:autoInstall:false type:Helm*KubeBlocks 的 CICD 流程會自動創建 oceanbase.tgz,開發者不需要關心OceanBase Addon 開發 OceanBase Addon 要寫多少代碼?*KubeBlocks-Addon 會自動會新接入的Addon生成Addon YAML,簡化了流程開發時間2周JSON2,961監控面板配置Shell Script1,239OBServer啟動腳本YAML998接入KueBlocks
10、的YAML文件運維功能列表低代碼插件擴展新引擎 案例 OceanBase*Rich day-2 operations2步創建集群運維任務支持情況Stop/StartYRestartYUpgradeYVolume-ExpandYVScaleYHScaleYBackup/RestoreYkbcli addon enable oceanbaseStep 1:打開 addonStep 2:指定引擎類型,創建集群Step X:集群運維kbcli cluster create oceanbase myob#myob為集群名kbcli cluster myob像搭樂高積木一樣標準與高效的在K8s上組裝數據庫
11、基礎設施拆解元件(Component)基于KubeBlocks(Addon)組裝式搭建(Cluster)通過 Component 靈活組裝 OceanBase 的多種部署形態3.3節點Cluster2.主從1.單節點4.多租戶ClusterOBProxy為企業在 K8s 上搭建統一管理多種數據庫的 DBPaaS性能KubeBlocks 是一個開源的在 K8s 上運行和管理數據基礎設施的系統軟件,它幫助開發人員、SRE、平臺工程師在企業中部署和維護專用的 DBPaaS,并支持多種公共云和私有云環境。KubeBlocks 針對容器和云環境對 MySQL 與 PostgreSQL 數據庫的內核和參數
12、進行優化,性能超過同規格RDS??捎眯訩ubeBlocks 支持多種數據庫的高可用集群配置??捎^察性KubeBlocks 從豐富的數據源采集監控指標,集成了 Prometheus堆棧,并提供了富有洞察力的 Grafana 模板。此外,還提供慢日志等排查工具??蓴U展性KubeBlocks 對接入一個新的數據庫引擎提供了良好的抽象,通過addon 機制可以快速集成,并提供一致的使用體驗和預期行為。為數據庫運維提供豐富的 Day-2 Operations集群管理水平伸縮垂直伸縮存儲擴容參數設置重啟停止/啟動版本升級賬號管理可觀測性備份恢復內置 Prometheus與外部監控系統無縫集成多層級監控大盤
13、IM/EMAIL 報警基于快照的自動備份集成流行的備份工具保存在低成本的對象存儲全量恢復/按時間點恢復高可用數據遷移FailoverSwitchover可配置的故障隔離級別內置遷移工具外部數據庫導入mysql2mysqlpg2pg異構遷移混沌測試性能測試故障注入 Fault-inject故障觀測 NyancatBench-tpccBench-fio基礎插件三方引擎PrometheusGrafanaCsi-s3-driverNebulaRisingWaveqdrantweaviateMilvusAws loadbalancercontrollerPikaKubeBlocks in CNCF LandscapeCNCF Cloud Native LANDSCAPE 收錄的唯一的開源多引擎數據/數據庫管理系統項目已經支持33數據庫引擎款歡迎加入社區謝謝謝謝謝謝