K8S使用operator部署和管理Percona - PXC集群

mysql-operator:使用Percona服务器的Kubernetes上的防弹MySQL MySQL运算符 MySQL Operator在Kubernetes上启用了防弹MySQL。 它管理用于部署和管理高可用性MySQL集群的所有必要资源。 它提供轻松的备份,同时保持群集的高可用性。 MySQL Operator是由工程团队开发的, 是一个智能托管的WordPress托管平台。 有关更多开源项目,请查看。 目标和地位 该运算符的主要目标是: 在Kubernetes中轻松部署MySQL集群(每服务集群模型) 对开发人员友好(解决了监视,可用性,可伸缩性和备份故事) 开箱即用的备份(计划的和按需的)和时间点恢复 支持集群内和跨集群的克隆。 操作员应被视为Alpha,不适合关键的生产工作量。 我们,Presslabs,目前成功地将其用于某些非关键的生产工作负载。 贡献 我们欢迎以功能问题,错误甚至是请求请求的新问题的形式做出的所有贡献。 我们愿意讨论有关如何改进操作员的想法,并且也很乐意找出在何处以及如何使用它。 与该项目有关的讨论应在Kubernetes Community 。 也可以通过与该项目的当前维护者联系。 文献资料 概述了如何部署和使用MySQL运算符 立即下载

概述
pxc为mysql的一种集群模型,我们结合operator和k8s 完成pxc的部署和扩容

硬盘使用local卷,如何管理local卷请翻阅 我的另一篇文章

https://www.jianshu.com/p/bfa204cef8c0

英文文档详情 https://percona.github.io/percona-xtradb-cluster-operator/configure/backups

下载git

 

git clone-brelease-0.3.0 https://github.com/percona/percona-xtradb-cluster-operator

cd percona-xtradb-cluster-operator

安装自定义资源CRD

kubectl apply-fdeploy/crd.yaml

创建pxc namespace

kubectl create namespace pxc

kubectl config set-context $(kubectl config current-context) -n pxc

创建k8s用户和权限

kubectl apply-fdeploy/rbac.yaml

部署operator

kubectl apply-fdeploy/operator.yaml

配置初始密码

生成加密字符串
echo -n 'plain-text-password' | base64

vi deploy/secrets.yaml

apiVersion: v1

kind: Secret

metadata:

  name: my-cluster-secrets

type: Opaque

data:

  root: 加密字符

  xtrabackup: 加密字符

  monitor: 加密字符

  clustercheck: 加密字符

  proxyuser: 加密字符

  proxyadmin: 加密字符

  pmmserver: 加密字符

部署

kubectl apply-fdeploy/secrets.yaml

部署集群

自定义pxc参数

vi deploy/cr.yaml

apiVersion: "pxc.percona.com/v1alpha1"

kind: "PerconaXtraDBCluster"

metadata:

  #集群名称

  name: "cluster1"

  finalizers:

    - delete-pxc-pods-in-order

    # - delete-proxysql-pvc

    # - delete-pxc-pvc

spec:

  secretsName: my-cluster-secrets

  pxc:

    #集群节点数量

    size: 3

    image: perconalab/pxc-openshift:0.2.0

    #资源信息

    resources:

      requests:

        memory: 1G

        cpu: 600m

      limits:

        memory: 1G

        cpu: "1"

    volumeSpec:

      #存储卷信息

      storageClass: local-storage

      accessModes: [ "ReadWriteOnce" ]

      #大小

      size: 6Gi

    affinity:

      topologyKey: "kubernetes.io/hostname"

      # advanced:

    # nodeSelector:

    #  disktype: ssd

    # tolerations:

    # - key: "node.alpha.kubernetes.io/unreachable"

    #  operator: "Exists"

    #  effect: "NoExecute"

    #  tolerationSeconds: 6000

    # priorityClassName: high-priority

    # annotations:

    #  iam.amazonaws.com/role: role-arn

    # imagePullSecrets:

    #  - name: private-registry-credentials

    # labels:

    #  rack: rack-22

  proxysql:

    #是否部署proxy来完成读写分离

    enabled: true

    #proxysql几点数量

    size: 1

    image: perconalab/proxysql-openshift:0.2.0

    resources:

      requests:

        memory: 1G

        cpu: 600m

      # limits:

      #  memory: 1G

      #  cpu: 700m

    volumeSpec:

      storageClass: ssd-local-storage

      accessModes: [ "ReadWriteOnce" ]

      size: 2Gi

    # affinity:

    #  topologyKey: "failure-domain.beta.kubernetes.io/zone"

    #  # advanced:

    # nodeSelector:

    #  disktype: ssd

    # tolerations:

    # - key: "node.alpha.kubernetes.io/unreachable"

    #  operator: "Exists"

    #  effect: "NoExecute"

    #  tolerationSeconds: 6000

  pmm:

    #是否开启pmm

    enabled: false

    image: perconalab/pmm-client:1.17.0

    serverHost: monitoring-service

    serverUser: pmm

  backup:

    image: perconalab/backupjob-openshift:0.2.0

    # imagePullSecrets:

    #  - name: private-registry-credentials

    schedule:

      - name: "sat-night-backup"

        #crontab计划

        schedule: "0 0 * * 6"

        #保存几份备份

        keep: 3

        volume:

          storageClass: local-storage

          size: 6Gi

kubectl apply -f deploy/cr.yaml

 

查看pxc集群

kubectl -n pxc get po --show-labels

 

查看service

kubectl -n pxc get svc

将nodePORT

kubectl -n pxc edit svc cluster1-pxc-proxysql

# Please edit the object below. Lines beginning with a '#' will be ignored,

# and an empty file will abort the edit. If an error occurs while saving this file will be

# reopened with the relevant failures.

#

apiVersion: v1

kind: Service

metadata:

  creationTimestamp: "2019-03-25T10:58:37Z"

  labels:

    app: pxc

    cluster: cluster1

  name: cluster1-pxc-proxysql

  namespace: pxc

  ownerReferences:

  - apiVersion: pxc.percona.com/v1alpha1

    controller: true

    kind: PerconaXtraDBCluster

    name: cluster1

    uid: f0a9a0ba-4eec-11e9-ba71-005056ac2dbb

  resourceVersion: "2771712"

  selfLink: /api/v1/namespaces/pxc/services/cluster1-pxc-proxysql

  uid: f0c3c844-4eec-11e9-9e18-005056ac20e9

spec:

  clusterIP: 10.99.239.180

  externalTrafficPolicy: Cluster

  ports:

  - name: mysql

    nodePort: 31239

    port: 3306

    protocol: TCP

    targetPort: 3306

  - name: proxyadm

    nodePort: 31531

    port: 6032

    protocol: TCP

    targetPort: 6032

  selector:

    component: cluster1-pxc-proxysql

  sessionAffinity: None

  type: NodePort

status:

  loadBalancer: {}

 

再次查看

 


连接mysql

mysql -h 10.16.16.119 -P 31239 -u root -p

连接proxyadmin

mysql -h 10.16.16.119 -P 31531 -u proxyadmin -p

 


扩容

将3节点扩容到5节点

需要注意必须为奇数节点,

而且po分布在不同的k8snode上 所以k8s node必须大于pxc节点,不然po会一直处于pend状态

kubectl -n pxc get pxc/cluster1 -o yaml | sed -e 's/size: 3/size: 5/' | kubectl -n pxc apply -f -

 

查看读写分离,新节点已经加入

 

缩减节点

 

kubectl -n pxc get pxc/cluster1 -o yaml | sed -e 's/size: 4/size: 3/' | kubectl -n pxc apply -f -

 

创建用户和同步用户到proxysql

mysql -u root -p -P 31239 -h node1

create database database1;

GRANT ALL PRIVILEGES ON database1.* TO 'user1'@'%' IDENTIFIED BY 'password1';

同步proxy

kubectl -n pxc exec -it cluster1-pxc-proxysql-0 -- proxysql-admin --config-file=/etc/proxysql-admin.cnf --syncusers 

 

测试

 


备份和恢复

crontab 已经在创建集群的时候创建完毕

 

手动backup

cat <<EOF | kubectl -n pxc apply -f-

apiVersion: "pxc.percona.com/v1alpha1"

kind: "PerconaXtraDBBackup"

metadata:

  name: "backup20190326"

spec:

  pxcCluster: "cluster1"

  volume:

    storageClass: local-storage

    size: 6G

EOF

 

查看备份

kubectl get pxc-backup

查看pxc集群

kubectl get pxc

从备份恢复数据

 

查看备份

kubectl get pxc-backup

查看pxc集群

kubectl get pxc

将指定备份恢复到指定集群
./deploy/backup/restore-backup.sh <备份名称> <集群名称>

 

将备份copy到本地

./deploy/backup/copy-backup.sh <备份名称> path/to/dir

 

安装PMM监控

 

helm repo add percona https://percona-charts.storage.googleapis.com

helm repo update

 

查看pmmserver 参数

helm inspect percona/pmm-server

安装

helm install percona/pmm-server --name pcx-monitoring --namespace=pxc --set platform=kubernetes --set persistence.storageClass=local-storage --set credentials.username=pmm

如果下载有问题可以代理下载

https://percona-charts.storage.googleapis.com/pmm-server-1.17.1.tgz

然后放到本机

tar -xvf ~/pmm-server-1.17.1.tgz

更改:

vi ./pmm-server/templates/statefulset.yaml 

115行加入

storageClassName: {{ .Values.persistence.storageClass }}

类似下图

 

helm install ./pmm-server --name pcx-monitoring --namespace=pxc --set platform=kubernetes --set persistence.storageClass=local-storage --set credentials.username=pmm --set "credentials.password=密码"

这里的密码必须和my-cluster-secrets中的pmmserver一致

如果忘记kubectl -n pxc get secret 查看

kubectl -n pxc edit secret 密码文件 修改

 

查看

 

开启客户端pmm

kubectl -n pxc get pxc

kubectl -n pxc get svc 获取pmmserver名称

kubectl -n pxc edit pxc cluster1

 

kubectl -n pxc get pxc

骑宠serverHost为kubectl -n pxc get svc 获取pmmserver的名称

serverUser为账号



 

告别手动点鼠标:用Python脚本批量跑ADS版图仿真,效率提升10倍(附完整代码) 本文详细介绍了如何利用Python脚本自动化ADS版图仿真流程,显著提升射频工程师的工作效率。通过调用ADS底层接口,实现参数化修改、批量任务调度和结果自动收集,解决了手动操作中的常见问题,如仿真不更新等。附完整代码,帮助开发者快速实现10倍效率提升。 阅读详情

相关推荐

在不同版本Python中安装PyQT5及PyQT5-Tools

在不同版本Python中安装PyQT5及PyQT5-Tools

zoomgu680的博客 2万+

如何在Kubernetes中安装Mysql PXC(Percona XtraDB Cluster)集群

percona官方为我们提供在kubernetes中部署PXC集群的最佳实践:Percona Kubernetes Operator for PXC, https://github.com/percona/percona-xtradb-cluster-operator 使用Operator安装PXC的方法如下: 1、克隆percona-xtradb-cluster-operator代码仓 $ git clone -b v1.9.0 https://github.com/perc..

洒满阳光的午后的博客 2469

EL6751实战指南:从协议解析到工业现场部署

本文详细介绍了EL6751网关在工业通信协议转换中的应用,从CANopen协议解析到EtherCAT系统部署的实战指南。通过协议栈位置、数据封装方式和通信模型差异的深入分析,帮助工程师高效实现EtherCAT主站与CANopen从站设备间的无缝对接,提升工业现场通信效率。

weixin_30338481的博客 547

Kubernetes部署系列:高可用MySQL集群

Kubernetes部署系列:高可用MySQL集群

CancerKing的博客 896

HUMAnN 3.0 (alpha)安装及使用

文章目录简介安装数据库下载运行参考 简介 安装 conda install humann humann_test (~1 minute) 数据库下载 humann_databases --download chocophlan full /path/to/databases --update-config yes humann_databases --download uniref uniref90_diamond /path/to/databases --update-config yes humann_

dys的博客 9505

紫光同创国产FPGA学习之Fabric Debugger

文章从紫光同创参考书拷贝过来的。因为我用的时候,看了一下就会用了(纯粹只是会用了,默认和xilinx的一样),没有看教程。先更新点文本,后面在写程序。 一、      软件简介 Fabric Debugger是一款界面化的FPGA芯片调试工具,能够针对公司目前以及未来的FPGA芯片进行在线调试。本软件直接与JtagHub、DebugCore交互,能够实时的配置目标FPGA、设置触发条件并且观测结...

my_share的专栏 6395

kubernetes mysql pxc_K8S使用operator部署和管理Percona - PXC集群

概述pxc为mysql的一种集群模型,我们结合operator和k8s 完成pxc的部署和扩容硬盘使用local卷,如何管理local卷请翻阅 我的另一篇文章https://www.jianshu.com/p/bfa204cef8c0英文文档详情 https://percona.github.io/percona-xtradb-cluster-operator/configure/backups下...

weixin_42131342的博客 1204

Python量化交易实战:pytdx库高效获取通达信分笔成交数据

本文详细介绍了如何使用Python的pytdx库高效获取通达信分笔成交数据,为量化交易提供关键市场微观结构分析。通过环境搭建、服务器连接、数据获取与清洗的完整流程,帮助开发者快速掌握这一免费高质量数据源,并实现分笔数据的实战分析与应用。

weixin_29061509的博客 1351

推荐项目:Percona XtraDB Cluster Operator

推荐项目:Percona XtraDB Cluster Operator 项目简介 是一个基于Kubernetes的开源工具,由Percona公司开发,旨在自动化部署和管理Percona XtraDB Cluster (PXC) - 一个高度可用的MySQL集群解决方案。通过Operator,你可以轻松地在Kubernetes环境中创建、扩展和维护XtraDB集群,大大简化了数据库管理的任务。 技...

gitblog_00033的博客 514

SAPGUI 与 ADT 的时代分野:在多云架构下,谁还能代表现代 SAP 开发

摘要(149字) SAP开发工具正经历代际更迭:SAPGUI基于专有协议(NI/DIAG)的厚客户端架构难以适配多云环境,而ADT(ABAP Development Tools)通过HTTP(S)协议和Eclipse生态成为ABAP Cloud/RAP开发的唯一入口。关键差异体现在:ADT支持CDS、行为定义等云原生对象建模,天然对齐BTP的零信任网络;集成ATC、Git等DevOps工具链;而SAPGUI无法创建RAP核心对象,在跨平台、自动化方面存在硬限制。官方文档明确将ADT作为Clean Core战

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 392

把冷门数据从内存里请出去:ABAP 环境下玩转 SAP HANA Native Storage Extension (NSE) 的开发者实战笔记

摘要:SAP HANA NSE技术为ABAP系统提供了一种经济高效的温数据管理方案。文章首先指出企业数据存在"温度分层"现象,高频访问的热数据需常驻内存,而低频温数据更适合存储在磁盘或闪存。NSE通过混合列存架构,将不常访问的数据移至磁盘但仍保持数据库内统一管理,显著降低内存成本。 关键实施要点包括:在ADT技术设置中将Load Unit设为"Page Enforced"以启用NSE;理解buffer cache作为数据"抽屉"的工作原理;掌握选表

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 164

kubernetes mysql pxc_kubernetes部署Percona XtraDB Cluster集群

PXC介绍全称percona-xtradb-cluster,提供了MySQL高可用的一种实现方法。PXC集群以节点组成(推荐至少3节点,便于故障恢复),每个节点都是基于常规的 MySQL Server,意味着你可以从集群中分离出某节点单独使用,集群中每个节点都包含完整的数据。PXC特性同步复制支持多主复制支持并行复制作为高可用方案,实施相对简单架构图如下所示部署PXC集群到kubernetes1、...

weixin_30842027的博客 684

多体动力学分析软件:SIMPACK_(3).SIMPACK模型创建与编辑

在 SIMPACK 中,模型的创建与编辑是多体动力学分析的基础。通过了解模型的基本结构、创建方法、编辑技巧和高级功能,用户可以高效地构建和优化复杂的多体系统模型。无论是手动创建、通过脚本创建还是导入现有的 CAD 模型,SIMPACK 都提供了强大的工具和灵活的接口,帮助用户实现精确和高效的仿真分析。希望本节内容对您在 SIMPACK 中进行多体系统建模有所帮助。如有任何问题或需要进一步的指导,请参考 SIMPACK 的官方文档或联系技术支持。

kkchenjj的博客 1011

从0到1搭建RAG系统:GroundX On-Prem多模态文档处理实战指南

GroundX On-Prem是一个基于Kubernetes部署的文档解析、存储和搜索系统,能帮助企业构建本地化的RAG(检索增强生成)解决方案。本文将带你从零开始,通过简单步骤部署这个强大的多模态文档处理平台,实现企业级文档理解与智能检索。 ## 为什么选择GroundX On-Prem构建RAG系统? 在当今信息爆炸的时代,企业需要高效处理和检索海量文档。GroundX On-Prem提供

gitblog_00156的博客 335

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Ubuntu 18.04 搭建 Galera MySQL 多主同步集群实战

Galera 集群是一种基于认证复制(Certification-Based Replication)的多主同步数据库架构,其核心原理是事务在提交前广播至所有节点并由各节点独立验证冲突,从而实现强一致性与秒级故障自动切换。该技术虽不提供水平分片能力,但在同城高可用场景中具备不可替代的价值——相比 MySQL Group Replication 的单主限制和云数据库的黑盒抽象,Galera 让运维者真正掌控同步延迟、脑裂防护与状态恢复等关键机制。本文聚焦 Ubuntu 18.04 环境下 MySQL 5.7

weixin_30546189的博客 441

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

kubernetes部署Percona XtraDB Cluster集群

PXC介绍 全称percona-xtradb-cluster,提供了MySQL高可用的一种实现方法。PXC集群以节点组成(推荐至少3节点,便于故障恢复),每个节点都是基于常规的 MySQL Server,意味着你可以从集群中分离出某节点单独使用,集群中每个节点都包含完整的数据。 PXC特性 同步复制 支持多主复制 支持并行复制 作为高可用方案,实施相对简单 架构图如下所示 部署PXC集群到kubernetes 1、下载部署文件 gitclone-bv1.5.0ht...

运维相关技术闲聊,专业背锅内容媒体 828

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Docker percona-xtradb-cluster(pxc)+HAProxy+MyCat (二)

一、新建目录及文件,用于挂载haproxy配置文件 mkdir /usr/local/src/config/haproxy -p cd /usr/local/src/config/haproxy touch haproxy.cfg vi haproxy.cfg haproxy.cfg global #工作目录 chroot /usr/local/etc/haproxy #日志文件,...

Cash Blog 346

ProxyAdmin — 高性能全功能代理服务管理工具

安装方法自动安装(推荐)手动安装如果自动安装不适用,您可以手动下载并安装 ProxyAdmin,具体步骤可以参考GitHub Releases 页面。访问控制面板首次登录的默认账号为root,密码为123,登录后请记得及时修改密码。配置文件Linux 和 MacOSWindows。

vortex5的博客 3394

【亲测免费】 探索Proxy Admin Free:一款强大的代理管理工具

探索Proxy Admin Free:一款强大的代理管理工具 项目简介 Proxy Admin Free 是一个开源的、基于Python编写的代理服务器管理平台。它旨在帮助用户方便地管理和测试HTTP/HTTPS代理,提供了丰富的功能和友好的界面,让日常的代理服务器操作变得简单易行。 技术分析 核心特性 多协议支持 - Proxy Admin Free 支持HTTP和HTTPS两种协议的代理服务...

gitblog_00038的博客 1602

Percona Operator for PostgreSQL 使用教程

Percona Operator for PostgreSQL 使用教程 1. 项目介绍 Percona Operator for PostgreSQL 是一个自动化和简化在 Kubernetes 上部署和管理开源 PostgreSQL 集群的项目。该项目基于 Crunchy Data 开发的 Postgres Operator,提供了以下核心功能: PostgreSQL 集群的自动部署 高可用...

gitblog_00939的博客 583

mysql8.0使用PXC实现高可用

PXC 本质上是基于 Galera 集群复制技术构建的多主 MySQL 集群。它允许在多个 MySQL 节点之间进行实时的数据同步和复制,每个节点都可以独立地处理读写操作,具备多主写入的能力,从而实现了数据库的高可用性、可扩展性和数据一致性。

m0_64469733的博客 798

如何搭建基于Kubernates的Mysql多主机群

基于Kubernates的Mysql多主集群部分的方案以及具体的部署步骤

limx59的专栏 4166

Kubernetes生产实践系列之十一:Kubernetes Mysql Operator方案对比

一、前言 在生产环境中,业务对于mysql的需求存在两个不同层次的需求:一种是存小部分业务数据,低负载的访问,第一要求是数据的安全性;第二种是存大量业务数据,复杂业务查询场景。对于第二种需求,需要高性能的mysql集群加专业的数据库运维才能满足业务需求,类似于vitess这样的专门为大规模mysql集群辅助系统;对于第一种需求,考虑到业务需求和资源性价比,可以使用部署在Kubernetes的集群...

cloudvtech的博客 6499

Percona PostgreSQL Operator 使用与部署指南

Percona PostgreSQL Operator 使用与部署指南 本指南将引导您了解并部署 Percona Operator for PostgreSQL,一个专为在 Kubernetes 上管理和自动化开源 PostgreSQL 集群而设计的工具。我们将会涉及其核心组件、目录结构、启动与配置文件解读,助力您的数据库管理之旅。 1. 目录结构及介绍 Percona PostgreSQL Op...

gitblog_01049的博客 1149

四款 MySQL Operator 助你容器数据库

管理 Kubernetes 上运行的缓存和数据库等有状态应用程序是一项艰巨的任务。使用 Kubernetes API,您可以通过将操作知识和实践直接编码到按需代码中来构建自我管理的基础架构。例如,当 MySQL 容器 pod 发生故障时,您可以使用 Operator 进行响应并采取适当的措施使系统恢复。 Operator 是构建在 Kubernetes 之上的控制器,可以自动化和简化特定的复杂操作。它们的存在是为了向最终用户提供卓越的可扩展性以及高可用性和监控功能。 在 Kubernetes 中运行数据库变

技术宅,专注云原生、Go、Linux、Java等技术分享,原创文章、效率工具、实战解决方案!关注我,了解互联网动态,学 IT 不迷路 1970

推荐文章: Percona Operator for PostgreSQL - 在Kubernetes上管理数据库的新里程碑

推荐文章: Percona Operator for PostgreSQL - 在Kubernetes上管理数据库的新里程碑 随着云原生时代的到来,数据库的运维也迎来了革命性的变化。今天,我们要向您介绍一个专为简化和自动化PostgreSQL集群部署与管理而设计的开源神器 —— Percona Operator for PostgreSQL。这款由Percona带来的强大工具,基于成熟的Post...

gitblog_00040的博客 653
上一篇: 如何搭建基于Kubernates的Mysql多主机群
下一篇: 热修改 MySQL 数据库 pt-online-schema-change 的使用详解
CodingSir
博客等级 码龄21年 2149粉丝 812原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值