官方文档地址:https://www.percona.com/doc/kubernetes-operator-for-pxc/kubernetes.html

一、简介

Percona XtraDB Cluster是MySQL高可用性和可扩展性的解决方案,Percona XtraDB Cluster提供的特性如下:

1).同步复制,事务要么在所有节点提交或不提交。

2).多主复制,可以在任意节点进行写操作。

3).在从服务器上并行应用事件,真正意义上的并行复制。

4).节点自动配置。

5).数据一致性,不再是异步复制。

二、兼容性

Percona XtraDB Cluster完全兼容MySQL和Percona Server,表现在:

1).数据的兼容性

2).应用程序的兼容性:无需更改应用程序

1).集群是有节点组成的,推荐配置至少3个节点,但是也可以运行在2个节点上

2).每个节点都是普通的mysql/percona服务器,可以将现有的数据库服务器组成集群,反之,也可以将集群拆分成单独的服务器。

3).每个节点都包含完整的数据副本

PXC集群主要由两部分组成:Percona Server with XtraDB和Write Set Replication patches(使用了Galera library,一个通用的用于事务型应用的同步、多主复制插件)

三、优缺点

优点如下:

1).当执行一个查询时,在本地节点上执行。因为所有数据都在本地,无需 远程访问

2).无需集中管理。可以在任何时间点失去任何节点,但是集群将照常工作, 不受影响

3).良好的读负载扩展,任意节点都可以查询

缺点如下:

1).加入新节点,开销大。需要复制完整的数据

2).不能有效的解决写缩放问题,所有的写操作都将发生在所有节点上

3).有多少个节点就有多少重复的数据

四、部署方式

示例在k8s集群中部署Percona XtraDB Cluster集群

  • clone项目
git clone -b v1.7.0 https://gitee.com/Aaron-23/percona-xtradb-cluster-operator.git
cd percona-xtradb-cluster-operator
  • 准备存储

当前环境具有三个k8s node节点,每个node节点/var/lib/data目录有100GB存储空间

所有存储均使用本地存储

创建storageclass

cd storage
kubectl create -f local-sc.yaml

创建pv

spec.local.path路径中的文件手动创建,修改values值为各节点ip

kubectl create -f pv-data-172.yaml
kubectl create -f pv-data-173.yaml
kubectl create -f pv-data-174.yaml
kubectl create -f pv-cron-172.yaml
kubectl create -f pv-cron-173.yaml
kubectl create -f pv-cron-174.yaml
  • 创建crd资源
 kubectl apply -f deploy/crd.yaml
  • 创建ns
 kubectl create namespace pxc
kubectl config set-context $(kubectl config current-context) --namespace=pxc
  • 赋予rbac权限
kubectl apply -f deploy/rbac.yaml
  • 在Kubernetes中启动operator
kubectl apply -f deploy/operator.yaml
  • 使用secrets.管理Percona XtraDB集群相关秘钥

需要设置数据库密码的修改secrets中密码即可

 kubectl create -f deploy/secrets.yaml
  • 创建Percona XtraDB Cluster
kubectl apply -f deploy/cr.yaml

创建过程将花费一些时间。当po和副本数都达到“Running”状态时,该过程结束:

$ kubectl get pods
NAME READY STATUS RESTARTS AGE
cluster1-haproxy-0 1/1 Running 0 5m
cluster1-haproxy-1 1/1 Running 0 5m
cluster1-haproxy-2 1/1 Running 0 5m
cluster1-pxc-0 1/1 Running 0 5m
cluster1-pxc-1 1/1 Running 0 4m
cluster1-pxc-2 1/1 Running 0 2m
percona-xtradb-cluster-operator-dc67778fd-qtspz 1/1 Running 0 6m
  • 检查与新创建集群的连接
 $ kubectl run -i --rm --tty percona-client --image=percona:8.0 --restart=Never -- bash -il
percona-client:/$ mysql -h cluster1-haproxy -uroot -proot_password
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1976
Server version: 8.0.19-10 Percona XtraDB Cluster (GPL), Release rel10, Revision 727f180, WSREP version 26.4.3 Copyright (c) 2009-2020 Percona LLC and/or its affiliates
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

在Kubernetes上安装Percona XtraDB集群的更多相关文章

  1. 在kubernetes上部署zookeeper,kafka集群

    本文采用网上镜像:mirrorgooglecontainers/kubernetes-zookeeper:1.0-3.4.10 准备共享存储:nfs,glusterfs,seaweed或其他,并在no ...

  2. 在Kubernetes上安装MySQL-PXC集群

    官方部署文档地址:https://www.percona.com/doc/kubernetes-operator-for-pxc/kubernetes.html 一.部署方式 示例在k8s集群(至少3 ...

  3. 用 edgeadm 一键安装边缘 K8s 集群和原生 K8s 集群

    背景 目前,很多边缘计算容器开源项目在使用上均存在一个默认的前提:用户需要提前准备一个标准的或者特定工具搭建的 Kubernetes 集群,然后再通过特定工具或者其他方式在集群中部署相应组件来体验边缘 ...

  4. kubernetes(K8S)快速安装与配置集群搭建图文教程

    kubernetes(K8S)快速安装与配置集群搭建图文教程 作者: admin 分类: K8S 发布时间: 2018-09-16 12:20 Kubernetes是什么? 首先,它是一个全新的基于容 ...

  5. Kubernetes后台数据库etcd:安装部署etcd集群,数据备份与恢复

    目录 一.系统环境 二.前言 三.etcd数据库 3.1 概述 四.安装部署etcd单节点 4.1 环境介绍 4.2 配置节点的基本环境 4.3 安装部署etcd单节点 4.4 使用客户端访问etcd ...

  6. kubernetes kubeadm部署高可用集群

    k8s kubeadm部署高可用集群 kubeadm是官方推出的部署工具,旨在降低kubernetes使用门槛与提高集群部署的便捷性. 同时越来越多的官方文档,围绕kubernetes容器化部署为环境 ...

  7. helm安装redis+Sentinel集群搭建

    一.redis集群特点 数据 在多个Redis节点之间自动分片 sentinel特点: 它的主要功能有以下几点 不时地监控redis是否按照预期良好地运行; 如果发现某个redis节点运行出现状况,能 ...

  8. Kubeadm安装的K8S集群1年证书过期问题的解决思路

    这个问题,很多使用使用kubeadm的用户都会遇到. 网上也有类似的帖子,从源代码编译这种思路, 在生产环境,有些不现实. 还是使用kubeadm的命令操作,比较自然一点. 当然,自行生成一套证书,也 ...

  9. Ubuntu16.04安装kubernetes1.13集群

    Ubuntu16.04安装kubernetes1.13集群 最新的安装可以使用以下方式:https://www.cnrancher.com/docs/rancher/v2.x/cn/overview/ ...

随机推荐

  1. 关于stm32串口必须要学的5个串口以及串口应用和注意事项

    串口是我们常用的一个数据传输接口,STM32F103系列单片机共有5个串口. 其中1-3是通用同步/异步串行接口USART(Universal Synchronous/Asynchronous Rec ...

  2. 一张图彻底搞懂Spring循环依赖

    1 什么是循环依赖? 如下图所示: BeanA类依赖了BeanB类,同时BeanB类又依赖了BeanA类.这种依赖关系形成了一个闭环,我们把这种依赖关系就称之为循环依赖.同理,再如下图的情况: 上图中 ...

  3. nginx + tomcat 实现负载均衡

    1.环境准备 服务器A上安装 nginx 作为代理服务器 服务器B上安装 tomcat,~/webapps 下创建 /test目录,创建 /index.html 内容为T1(生产环境中一般是一样的wa ...

  4. 记一次线上环境 ES 主分片为分配故障

    故障前提 ElasticSearch 版本:5.2 集群节点数:5 索引主分片数:5 索引分片副本数:1 线上环境ES存储的数据量很大,当天由于存储故障,导致一时间 5个节点的 ES 集群,同时有两个 ...

  5. 深入浅出:了解时序数据库 InfluxDB

    数据模型 1.时序数据的特征 时序数据应用场景就是在时间线上每个时间点都会从多个数据源涌入数据,按照连续时间的多种纬度产生大量数据,并按秒甚至毫秒计算的实时性写入存储. 传统的RDBMS数据库对写入的 ...

  6. FastJson 解析、序列化及反序列化

    一.环境准备:使用maven特性在pom.xml中导入fastjson的依赖包 <!-- https://mvnrepository.com/artifact/com.alibaba/fastj ...

  7. HTML基本使用

    HTML初识 (Hyper Text Markup Language): 超文本标记语言 「HTML骨架格式」 <!-- 页面中最大的标签 根标签 --> <html> < ...

  8. Git撤销、回滚操作

    git的工作流 工作区:即自己当前分支所修改的代码,git add xx 之前的!不包括 git add xx 和 git commit xxx 之后的. 暂存区:已经 git add xxx 进去, ...

  9. 浅谈springboot自动配置原理

    前言 springboot自动配置关键在于@SpringBootApplication注解,启动类之所以作为项目启动的入口,也是因为该注解,下面浅谈下这个注解的作用和实现原理 @SpringBootA ...

  10. vue中axios的post和get请求示例

    POST请求 methods: { isclick() { if (this.account == "" || this.pwd == "") { this.$ ...