kubeblocks 数据库容器化和标准化之路_第1页
kubeblocks 数据库容器化和标准化之路_第2页
kubeblocks 数据库容器化和标准化之路_第3页
kubeblocks 数据库容器化和标准化之路_第4页
kubeblocks 数据库容器化和标准化之路_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

KubeBlocks数据库容器化和标准化之路蔡松露|云猿生CTO 01云、K8s和数据库演化趋势 03KubeBlocks的设计理念和核心特点04数据库容器化的常见问题05数据库私有化平台案例云、K8s和数据库演化趋势赶超公有云K8sisnewpaas业务层PaaS层PaaS层服务发现配置管理声明式APIPOD服务发现配置管理声明式APIPODservicePVC/PVsecretconfigmapTaintTolerationAffinityAnti-AffinityeventK8sPaaS全景图里还缺最后一块:dbpaasdbPaaS的挑战数据库种类太多运维操作复杂数据库种类太多运维运维操作引擎环境RedisMySQLPG开发和维护成本高引入新引擎成本高数据库容器化后能不能像搭积木一样在K8s上进行管理呢?首先思考:如何解决软件工程复杂性问题文件系统的模型POSIX-POSIX-open()-write()xfsxfsK8s扩展的模型网络系统的模型KubeBlocks通过抽象和分层来管理数据库KubeBlocksOperator实现KubeBlocksAddonsKubeBlocksAddonsllcKubeBlocksAPIAddonAPIkbcliKubeBlocksCloudkbcliKubeBlocksCloudServiceSecretConfigmap…PodPVCKubeBlocks通过抽象和分层来管理数据库KubeBlocksKubeBlocksOperator实现KubeBlocksAddonsllcKubeBlocksAddonsllcKubeBlocksAPIAddonAPIkbcliKubeBlocksCloudkbcliKubeBlocksCloudServiceSecretConfigmap…PodPVCKubeBlocks通过抽象和分层来管理数据库kbclikbcliKubeBlocksKubeBlocksCloudKubeBlocksKubeBlocksOperator实现KubeBlocksAPIAddonAPIConfigmapServiceSecretPodPVC…KubeBlocksAddonsKubeBlocksAddonsllcKubeBlocks通过抽象和分层来管理数据库KubeBlocksOperator实现KubeBlocksAddonsllcKubeBlocksAddonsllcAddonAPIKubeBlocksAPIAddonAPIkbcliKubeBlocksCloudkbcliKubeBlocksCloudServiceSecretConfigmap…PodPVC把KubeBlocksAPI映射到数据库-MySQLComponent:Component:ProxyCluster:MySQL↓Component:OrchestratorComponent:Component:OrchestratorComponent:MySQLInstanceSetInstanceSetInstanceSetInstanceSetInstanceSetInstanceSetInstance InstanceInstanceInstanceInstanceInstanceInstanceInstanceInstanceInstanceServiceService ServiceServiceServiceService把KubeBlocksAPI映射到数据库-Redis主备 Cluster:Redis Component:RedisComponent:Sentinel InstanceSetInstanceSet InstanceInstanceInstanceInstance Instance ServiceService把KubeBlocksAPI映射到数据库-Redis集群 Cluster:RedisClusterComponent:RedisComponent:RedisComponent:RedisComponent:Component:RedisComponent:RedisComponent:RedisComponent:RedisInstanceSetInstanceSetInstanceSetInstanceSet↓ Instance↓ InstanceSetInstanceSetInstanceSetInstanceSet↓ Instance↓ ↓ Instance↓ ↓Instance↓Instance↓ InstanceSetInstanceInstanceInstanceInstanceInstanceInstanceInstanceInstanceInstanceInstanceInstance↓↓↓ ServiceServiceServiceServiceServiceServiceServiceServiceServiceService把KubeBlocksAPI映射到数据库-OB三节点 ! Component:OBServer↓ InstanceSet↓ Instance Instance Instance Service把KubeBlocksAPI映射到数据库-OB主备 ! Component:OBServer↓ InstanceSet↓ InstanceInstance Service把KubeBlocksAPI映射到数据库-PolarDB-X Component:CNComponent:GMSComponent:DN-0Component:DN-1Component:DN-2 InstanceSetInstanceSetInstanceSetInstanceSetInstanceSetInstanceInstanceInstanceInstanceInstance InstanceInstanceInstanceInstanceInstance InstanceInstanceInstanceInstanceInstance Instance↓ ServiceServiceServiceServiceService把KubeBlocksAPI映射到数据库-KafkaCluster:KafkaComponent:Component:BrokerComponent:Component:ExporterComponent:ControllerInstanceSetInstanceSetInstanceSetInstanceSetInstanceSetInstanceSetInstanceInstanceInstance↓Instance InstanceInstanceInstanceInstance↓InstanceServiceServiceServiceServiceServiceServiceKubeBlocks通过抽象和分层来管理数据库KubeBlocksOperator实现KubeBlocksAddonsllcKubeBlocksAddonsllcAddonAPIKubeBlocksAPIkbcliKubeBlocksCloudkbcliKubeBlocksCloudServiceSecretConfigmap…PodPVCKubeBlocks通过抽象和分层来管理数据库KubeBlocksOperator实现KubeBlocksAddonsllcKubeBlocksAddonsllcAddonAPIAddonAPIkbcliKubeBlocksCloudkbcliKubeBlocksCloudServiceSecretConfigmap…PodPVCKubeBlocks通过抽象和分层来管理数据库KubeBlocksKubeBlocksOperator实现KubeBlocksAddonsllcKubeBlocksAddonsllcAddonAPIKubeBlocksAPIAddonAPIkbcli•支持不同的副本有不同的配置(镜像、资源、参数)kbcli•支持不同的副本有不同的配置(镜像、资源、参数)KubeBlocksCloudServiceSecretConfigmap…PodPVCKubeBlocks通过抽象和分层来管理数据库KubeBlocksKubeBlocksOperator实现KubeBlocksAddonsllcKubeBlocksAddonsllcAddonAPIKubeBlocksAPIAddonAPIkbclikbcliKubeBlocksCloudServiceSecretConfigmap…PodPVCKubeBlocks通过抽象和分层来管理数据库KubeBlocksOperator实现KubeBlocksAPIAddonAPIKubeBlocksAPIAddonAPIServiceSecretConfigmap…PodPVCkbcliKubeBlocksCloudKubeBlocksAddonsllc例子:RedisAddon支持Redis多种部署形态单节点单节点(e.g.TwemProxy/Camellia)HA,"'SentinelSentinelSentinelSentinelSentinelSentinel Sentinel SentinelSentinel/apecloud/kubeblocks-addons/tree/main1.编写ComponentDefinition:Redis/Sentinel/Proxy…- volumeMounts:…/apecloud/kubeblocks-addons/blob/main/addons/redis/templates/componentdefinition-red2.编写ComponentDefinition:Redis/Sentinel/Proxyeocmpd-redis-sentinel.yamlvolumeMounts:…/apecloud/kubeblocks-addons/blob/main/addons/redis/templates/componentdefinition-redis-sentin3.编写ComponentDefinition:Redis/Sentinel/Proxyooocmpd-redis-twemproxy.yaml ooocmpd-redis-twemproxy.yaml/apecloud/kubeblocks-addons/blob/main/addons/redis/templates/componentdefinition-redis-twempro4.编写ClusterDefinition:组装Redis/Sentinel/Proxykind:ClusterDefinitionmetadata:name:redisspec:topologies:-name:standalone2.主从+SentinelcompDef:“cmpd-redis2.主从+Sentinel-name:compDef:“cmpd-redis”-name:redis-compDef:“cmpd-redis-sentinel”-name:replication-twemproxycomponents:3.RedisProxy3.RedisProxySentinel-name:redis-sentinelcompDef:“cmpd-redis-sentinel”l-name:redislcompDef:“cmpd-redis-twemproxy”ll/apecloud/kubeblocks-addons/blob/main/addons/redis/tll5.使用RedisAddon创建和管理Redis数据库cluster-cd-cluster-cd-cpu:“1.0”volumeClaimTemplates:……通过kbclikbcliclustercreatekbcliclustercreate/apecloud/kubeblocks-addons/blob/main/examples/redis/cluster-cd-topolKubeBlocks已经集成了35数据库引擎家star》Dor1s/apecloud/kubeblocks-addons/tree/main/addons数据库容器化常见问题容器化会不会影响数据库的性能?K8s适合管理有状态服务么?如何解决K8s和Operator的升级?虚拟化与容器化方案对比VMVMmicroVM•Firecracker用户态gVisorrunC性能:runC>microVM>VM>gVisor安全性:VM≈microVM≈gVisor>runCKubeBlocks基于runC容器进行的性能优化KubeBlocks基于runC容器进行的性能优化KubeBlocks基于runC容器进行的性能优化品品XFSPING_IN…PING_M…SETGETINCRLPUSHRPUSHLPOPRPOPSADDHSETSPOPZADDZPOPMINLPUSHLRANGE…MSETPING_IN…PING_M…SETGETINCRLPUSHRPUSHLPOPRPOPSADDHSETSPOPZADDZPOPMINLPUSHLRANGE…MSET数据库容器化常见问题容器化会不会影响数据库的性能?K8s适合管理有状态服务么?如何解决K8s和Operator的升级?从StatefulSet到InstanceSetInstanceSetStatefulSetInstanceSetStat

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论