当前位置: 首页 > news >正文

甘肃省两学一做专题网站网站建设实验总结

甘肃省两学一做专题网站,网站建设实验总结,贵阳专业网站制作,跟我一起做网站以下是一个基于Kubernetes部署MySQL主从集群的详细YAML示例#xff0c;包含StatefulSet、Service、ConfigMap和Secret等关键配置。MySQL主从集群需要至少1个主节点和多个从节点#xff0c;这里使用 StatefulSet 初始化脚本 实现主从自动配置。 1. 创建 Namespace (可选) ap…以下是一个基于Kubernetes部署MySQL主从集群的详细YAML示例包含StatefulSet、Service、ConfigMap和Secret等关键配置。MySQL主从集群需要至少1个主节点和多个从节点这里使用 StatefulSet 初始化脚本 实现主从自动配置。 1. 创建 Namespace (可选) apiVersion: v1 kind: Namespace metadata:name: mysql-cluster2. 创建 Secret (存储MySQL密码) apiVersion: v1 kind: Secret metadata:name: mysql-secretsnamespace: mysql-cluster type: Opaque data:root-password: eHg # echo -n xx | base64 (示例密码)replication-password: eHg # 主从同步专用密码3. 创建 ConfigMap (主从配置文件) apiVersion: v1 kind: ConfigMap metadata:name: mysql-confignamespace: mysql-cluster data:master.cnf: |[mysqld]log-binmysql-binserver-id1slave.cnf: |[mysqld]log-binmysql-binserver-id2init.sql: | # 初始化主从复制的SQL脚本CREATE USER repl% IDENTIFIED BY xx; # 密码需与Secret中一致GRANT REPLICATION SLAVE ON *.* TO repl%;FLUSH PRIVILEGES;4. 创建 Service (主从分离访问) # 主节点服务 apiVersion: v1 kind: Service metadata:name: mysql-masternamespace: mysql-cluster spec:ports:- name: mysqlport: 3306selector:app: mysqlrole: masterclusterIP: None# 从节点服务 apiVersion: v1 kind: Service metadata:name: mysql-slavenamespace: mysql-cluster spec:ports:- name: mysqlport: 3306selector:app: mysqlrole: slaveclusterIP: None5. 创建 StatefulSet (1主2从) apiVersion: apps/v1 kind: StatefulSet metadata:name: mysqlnamespace: mysql-cluster spec:serviceName: mysqlreplicas: 3selector:matchLabels:app: mysqltemplate:metadata:labels:app: mysqlrole: slave # 默认标记为slaveinit容器中将修改第一个Pod为masterspec:initContainers:- name: init-mysqlimage: mysql:8.0command:- bash- -c- |# 根据Pod序号分配server-id和角色[[ hostname ~ -([0-9])$ ]] || exit 1ordinal${BASH_REMATCH[1]}if [[ $ordinal -eq 0 ]]; then# 主节点配置cp /mnt/config/master.cnf /mnt/conf.d/echo rolemaster /mnt/conf.d/roleelse# 从节点配置cp /mnt/config/slave.cnf /mnt/conf.d/echo roleslave /mnt/conf.d/rolefivolumeMounts:- name: confmountPath: /mnt/conf.d- name: config-mapmountPath: /mnt/config- name: clone-mysqlimage: alpine:3.18command:- bash- -c- |# 只有从节点需要等待主节点初始化完成if [ -f /mnt/conf.d/role ] grep -q slave /mnt/conf.d/role; thenuntil nslookup mysql-0.mysql; dosleep 2donefivolumeMounts:- name: confmountPath: /mnt/conf.dcontainers:- name: mysqlimage: mysql:8.0env:- name: MYSQL_ROOT_PASSWORDvalueFrom:secretKeyRef:name: mysql-secretskey: root-password- name: MYSQL_REPL_PASSWORDvalueFrom:secretKeyRef:name: mysql-secretskey: replication-passwordports:- name: mysqlcontainerPort: 3306volumeMounts:- name: datamountPath: /var/lib/mysql- name: confmountPath: /etc/mysql/conf.d- name: init-sqlmountPath: /docker-entrypoint-initdb.dlivenessProbe:exec:command: [mysqladmin, ping, -uroot, -p${MYSQL_ROOT_PASSWORD}]initialDelaySeconds: 30periodSeconds: 10readinessProbe:exec:command: [mysql, -uroot, -p${MYSQL_ROOT_PASSWORD}, -e, SELECT 1]initialDelaySeconds: 5periodSeconds: 5volumes:- name: confemptyDir: {}- name: config-mapconfigMap:name: mysql-configitems:- key: master.cnfpath: master.cnf- key: slave.cnfpath: slave.cnf- name: init-sqlconfigMap:name: mysql-configitems:- key: init.sqlpath: init.sqlvolumeClaimTemplates:- metadata:name: dataspec:accessModes: [ReadWriteOnce]storageClassName: standard # 根据环境调整resources:requests:storage: 10Gi6. 主从初始化自动化脚本 (StatefulSet启动后执行) 主节点启动后自动创建复制用户从节点自动连接主节点 # 在StatefulSet的Pod模板中添加以下生命周期钩子 lifecycle:postStart:exec:command:- /bin/bash- -c- |if [ -f /etc/mysql/conf.d/role ] grep -q master /etc/mysql/conf.d/role; then# 主节点执行初始化SQLmysql -uroot -p${MYSQL_ROOT_PASSWORD} /docker-entrypoint-initdb.d/init.sqlelse# 从节点配置主从复制until mysql -h mysql-0.mysql -uroot -p${MYSQL_ROOT_PASSWORD} -e SELECT 1; dosleep 1donemysql -uroot -p${MYSQL_ROOT_PASSWORD} -e CHANGE MASTER TOMASTER_HOSTmysql-0.mysql,MASTER_USERrepl,MASTER_PASSWORD${MYSQL_REPL_PASSWORD},MASTER_AUTO_POSITION1;START SLAVE;fi验证主从同步 # 检查主节点状态 kubectl exec -it mysql-0 -n mysql-cluster -- mysql -uroot -p -e SHOW MASTER STATUS\G# 检查从节点同步状态 kubectl exec -it mysql-1 -n mysql-cluster -- mysql -uroot -p -e SHOW SLAVE STATUS\G关键注意事项 主节点高可用此方案主节点单点若需高可用需结合 Orchestrator 或 ProxySQL 实现故障转移。数据持久化确保 storageClassName 与实际存储系统匹配如 rook-cephfs、nfs。密码安全通过Secret管理敏感信息禁止明文存储。网络通信确保StatefulSet的Pod之间可通过DNS名称互相访问如 mysql-0.mysql.mysql-cluster.svc.cluster.local。扩展性通过增加 replicas 数量扩展从节点。 完整架构示意图 Client - Service(mysql-master) - Pod(mysql-0) [Master] Client - Service(mysql-slave) - Pod(mysql-1, mysql-2) [Slave]可根据需求调整副本数量或增加读写分离中间件如ProxySQL。
http://www.w-s-a.com/news/283682/

相关文章:

  • 公司主页的网站格式wordpress自动推送给百度
  • 网站建设辶金手指排名十二wordpress 当数据库
  • 无锡手机网站建设服务苏州展厅设计企业
  • 无锡网站制作需要多少钱北京二次感染最新消息
  • 网站开发视频播放无画面杭州房产信息网官网
  • 网站开发 改进如何创建公众号平台
  • wordpress网站响应很慢只有asp网站代码可以重新编译吗
  • 哪个网站教做饭做的好wordpress热点文章
  • 可以做推广东西的网站重庆网站建设 重庆网站制作
  • 珠海网站建设培训学校wordpress去版权 合法
  • 建设食品商购网站学校网站设计实验报告
  • 建个网站多少钱沭阳奥体小区做网站的
  • 广州视频网站建站公司php网页设计作业代码
  • 成都公司网站设计如何制作网址最简单的方法
  • 温州 做网站福建住房城乡建设部网站
  • 网站自动化采集成都网站设计费用
  • 广东专业网站定制建设淘宝网站的人员组织结构
  • 网站改版seo无锡有多少家公司
  • h5美食制作网站模板下载wordpress大学百度云
  • 零陵做网站建立网站的公司平台
  • 某企业电子商务网站建设网站开发实验结论
  • 自己做的网站突然打不开杭州哪些做网站公司好
  • 株洲专业建设网站免费cms内容管理系统
  • 网上建立网站赚钱网站建设方案书纯文字
  • 专业网站设计哪家好it外包合同模板
  • 个人网站备案都需要什么中小企业服务网
  • 佛山网站建设哪个在公司网站投简历该怎么做
  • 八戒网站做推广老域名全部失效请拿笔记好
  • iss服务器网站建设甘肃建设厅网站执业注册中心
  • 域名访问网站 过程网站 免费 托管运营