云原生数据基础设施之kubeblocks

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 云原生数据基础设施之kubeblocks

一、kubeblocks简介

参考文档:https://kubeblocks.io/docs/release-0.9/user_docs/overview/introduction

1.KubeBlocks 是什么?

KubeBlocks 是基于 Kubernetes 的云原生数据基础设施,将顶级云服务提供商的大规模生产经验与增强的可用性和稳定性改进相结合,帮助用户轻松构建容器化、声明式的关系型、NoSQL、流计算和向量型数据库服务。


KubeBlocks 的名字源自 Kubernetes(K8s)和乐高积木,致力于让 K8s 上的数据基础设施管理就像搭乐高积木一样,既高效又有趣。

2.为什么需要 KubeBlocks?

Kubernetes 已经成为容器编排的事实标准。它利用 ReplicaSet 提供的可扩展性和可用性以及 Deployment 提供的推出和回滚功能来管理日益增加的无状态工作负载。然而,管理有状态工作负载给 Kubernetes 带来了巨大的挑战。
尽管 StatefulSet 提供了稳定的持久存储和唯一的网络标识符,但这些功能对于复杂的有状态工作负载来说远远不够。


为了应对这些挑战,并解决复杂性问题,KubeBlocks 引入了 ReplicationSet 和 ConsensusSet,具备以下能力:

 1.基于角色的更新顺序可减少因升级版本、缩放和重新启动而导致的停机时间。

 2.维护数据复制的状态,并自动修复复制错误或延迟。

3.主要功能

支持多云,与 AWS、GCP、Azure、阿里云等云平台兼容。

支持 MySQL、PostgreSQL、Redis、MongoDB、Kafka 等 32 个主流数据库和流计算引擎。

提供生产级性能、弹性、可扩展性和可观察性。

简化 day-2 操作,例如升级、扩展、监控、备份和恢复。

包含强大且直观的命令行工具。

仅需几分钟,即可建立一个适用于生产环境的完整数据基础设施。

二、安装 KubeBlocks

版本要求 1.22,具体根据官方文档

1.安装kbcli

curl -fsSL https://kubeblocks.io/installer/install_cli.sh | bash

kbcli version

echo "source <(kbcli completion bash)" >> ~/.bashrc

.  ~/.bashrc

2.安装KubeBlocks

需要等待几分钟

#查看可用的版本
kbcli kubeblocks list-versions
#使用 --version 指定版本,如果不指定则是最新版本
kbcli kubeblocks install --version=x.x.x
#验证 KubeBlocks 安装
kbcli kubeblocks status
KubeBlocks is deployed in namespace: kb-system,version: 0.9.0
KubeBlocks Workloads:
NAMESPACE   KIND         NAME                           READY PODS   CPU(CORES)   MEMORY(BYTES)   CREATED-AT                   
kb-system   Deployment   kb-addon-snapshot-controller   1/1          N/A          N/A             Aug 05,2024 13:40 UTC+0800   
kb-system   Deployment   kubeblocks                     1/1          N/A          N/A             Aug 05,2024 13:38 UTC+0800   
kb-system   Deployment   kubeblocks-dataprotection      1/1          N/A          N/A             Aug 05,2024 13:38 UTC+0800   
KubeBlocks Addons:
NAME                           STATUS     TYPE   PROVIDER   
alertmanager-webhook-adaptor   Disabled   Helm   N/A        
apecloud-mysql                 Enabled    Helm   N/A        
apecloud-otel-collector        Disabled   Helm   N/A        
aws-load-balancer-controller   Disabled   Helm   N/A        
csi-driver-nfs                 Disabled   Helm   N/A        
csi-hostpath-driver            Disabled   Helm   N/A        
csi-s3                         Disabled   Helm   N/A        
external-dns                   Disabled   Helm   N/A        
fault-chaos-mesh               Disabled   Helm   N/A        
grafana                        Disabled   Helm   N/A        
kafka                          Enabled    Helm   N/A        
kubebench                      Disabled   Helm   N/A        
kubeblocks-csi-driver          Disabled   Helm   N/A        
llm                            Disabled   Helm   N/A        
loki                           Disabled   Helm   N/A        
migration                      Disabled   Helm   N/A        
minio                          Disabled   Helm   N/A        
mongodb                        Enabled    Helm   N/A        
mysql                          Enabled    Helm   N/A        
nvidia-gpu-exporter            Disabled   Helm   N/A        
nyancat                        Disabled   Helm   N/A        
postgresql                     Enabled    Helm   N/A        
prometheus                     Disabled   Helm   N/A        
pulsar                         Enabled    Helm   N/A        
pyroscope-server               Disabled   Helm   N/A        
qdrant                         Disabled   Helm   N/A        
redis                          Enabled    Helm   N/A        
snapshot-controller            Enabled    Helm   N/A        
victoria-metrics-agent         Disabled   Helm   N/A

3.插件启用/禁用

#查看支持的插件
kbcli addon list
#启用插件
kbcli addon enable plugin-name
#禁用插件
kbcli addon disable plugin-name

三、安装MySQL验证kubeblocks

1.安装MySQL

kubectl create namespace mysql-demo

kbcli cluster create mysql mysql-demo -n mysql-demo  #集群名称mysql-demo,我这里由于演示只创建一个节点,如果创建集群,参考官方文档

kubectl get pods -n mysql-demo

NAME                 READY   STATUS    RESTARTS   AGE

mysql-demo-mysql-0   4/4     Running   0          6m41s

2.连接MySQL

#kbcli 方式
kbcli cluster connect mysql-demo -n mysql-demo  #会自动登录MySQL
#kubectl方式
kubectl get secrets -n mysql-demo |grep credential
mysql-demo-conn-credential                  Opaque   5      28m
kubectl get secrets -n mysql-demo mysql-demo-conn-credential -o  jsonpath='{.data.\username}' | base64 -d
root
kubectl get secrets -n mysql-demo mysql-demo-conn-credential -o  jsonpat.data.\password}' | base64 -d
rtbc8zdd
kubectl exec -ti -n mysql-demo mysql-demo-mysql-0 -- bash
mysql -uroot -p
相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
27天前
|
存储 人工智能 Cloud Native
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
在9月20日2024云栖大会上,阿里云智能集团副总裁,数据库产品事业部负责人,ACM、CCF、IEEE会士(Fellow)李飞飞发表《从数据到智能:Data+AI驱动的云原生数据库》主题演讲。他表示,数据是生成式AI的核心资产,大模型时代的数据管理系统需具备多模处理和实时分析能力。阿里云瑶池将数据+AI全面融合,构建一站式多模数据管理平台,以数据驱动决策与创新,为用户提供像“搭积木”一样易用、好用、高可用的使用体验。
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
|
5月前
|
存储 Cloud Native 关系型数据库
云原生数据仓库使用问题之如何将一行数据转换为多行数据
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
|
2月前
|
存储 人工智能 Cloud Native
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
阿里云瑶池在2024云栖大会上重磅发布由Data+AI驱动的多模数据管理平台DMS:OneMeta+OneOps,通过统一、开放、多模的元数据服务实现跨环境、跨引擎、跨实例的统一治理,可支持高达40+种数据源,实现自建、他云数据源的无缝对接,助力业务决策效率提升10倍。
|
3月前
|
存储 人工智能 Cloud Native
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
阿里云数据库重磅升级!元数据服务OneMeta + OneOps统一管理多模态数据
|
4月前
|
安全 网络安全 数据安全/隐私保护
云原生技术探索:容器化与微服务架构的实践之路网络安全与信息安全:保护数据的关键策略
【8月更文挑战第28天】本文将深入探讨云原生技术的核心概念,包括容器化和微服务架构。我们将通过实际案例和代码示例,展示如何在云平台上实现高效的应用部署和管理。文章不仅提供理论知识,还包含实操指南,帮助开发者理解并应用这些前沿技术。 【8月更文挑战第28天】在数字化时代,网络安全和信息安全是保护个人和企业数据的前线防御。本文将探讨网络安全漏洞的成因、加密技术的应用以及提升安全意识的重要性。文章旨在通过分析网络安全的薄弱环节,介绍如何利用加密技术和提高用户警觉性来构建更为坚固的数据保护屏障。
|
4月前
|
运维 安全 Cloud Native
核心系统转型问题之保障云原生分布式转型中的基础设施和应用层面如何解决
核心系统转型问题之保障云原生分布式转型中的基础设施和应用层面如何解决
|
4月前
|
Cloud Native 安全 中间件
核心系统转型问题之云原生架构下的基础资源设施应重点考虑什么方面
核心系统转型问题之云原生架构下的基础资源设施应重点考虑什么方面
|
4月前
|
Kubernetes Cloud Native API
Kubernetes云原生问题之Kubernetes帮助业务应用较少关注底层基础设施差异如何解决
Kubernetes云原生问题之Kubernetes帮助业务应用较少关注底层基础设施差异如何解决
44 1
|
5月前
|
存储 SQL Cloud Native
云原生数据仓库使用问题之如何将数据设置为冷存储
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
|
5月前
|
Cloud Native 关系型数据库 MySQL
云原生数据仓库使用问题之如何将ADB中的数据导出到自建的MySQL数据库
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。