k8s-mysql主從部署

一.環境信息

mysql版本?:8.0

k8s 版本1.22

使用nfs作為共享存儲

二.配置mysql主節點yaml

apiVersion: v1
kind: ConfigMap
metadata:name: mysql-master-confignamespace: mysqllabels:app: mysql-master-config
data:my.cnf: |+[client]default-character-set=utf8[mysql]default-character-set=utf8[mysqld]init_connect='SET collation_connection = utf8_unicode_ci'init_connect='SET NAMES utf8'character-set-server=utf8lower_case_table_names=1sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTIONcollation-server=utf8_unicode_ciskip-character-set-client-handshakeskip-name-resolvepid-file        = /var/run/mysqld/mysqld.pidsocket          = /var/run/mysqld/mysqld.sockdatadir         = /var/lib/mysqlsecure-file-priv= NULL# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0# 主從同步server-id = 1log-bin = mysql-binsync_binlog = 1binlog_checksum = nonebinlog_format = mixedslave-skip-errors = allevent_scheduler = 1max_allowed_packet = 64M# Custom config should go here!includedir /etc/mysql/conf.d/
---
# headless service
apiVersion: v1
kind: Service
metadata:name: mysql-master-svcnamespace: mysqllabels:app: mysql-master-svc
spec:clusterIP: Noneports:- name: master-portport: 3306selector:app: mysql-master
---
# NodePort service
apiVersion: v1
kind: Service
metadata:name: mysql-master-nodeportnamespace: mysqllabels:app: mysql-master-nodeport
spec:clusterIP:ports:- name: master-portport: 3306nodePort: 31306targetPort: 3306selector:app: mysql-mastertype: NodePorttarget-port:externalTrafficPolicy: Cluster
---
apiVersion: apps/v1
kind: StatefulSet
metadata:name: mysql-masternamespace: mysql
spec:serviceName: "mysql-master-svc"replicas: 1selector:matchLabels:app: mysql-mastertemplate:metadata:labels:app: mysql-masterspec:containers:- name: mysql-masterimage: mysql:8.0.20ports:- containerPort: 3306name: master-portenv:- name: MYSQL_ROOT_PASSWORDvalue: "root"- name: TZvalue: "Asia/Shanghai"volumeMounts:- name: mycnfmountPath: /etc/mysql/my.cnfsubPath: my.cnf- name: mysql-master-datamountPath: /var/lib/mysqlvolumes:- name: mycnfconfigMap:name: mysql-master-config- name: mysql-master-datanfs:server: 192.168.110.190 path: /data/data/mysql-master

三.配置mysql從節點yaml

apiVersion: v1
kind: ConfigMap
metadata:name: mysql-slave-confignamespace: mysqllabels:app: mysql-slave-config
data:my.cnf: |+[client]default-character-set=utf8[mysql]default-character-set=utf8[mysqld]init_connect='SET collation_connection = utf8_unicode_ci'init_connect='SET NAMES utf8'character-set-server=utf8lower_case_table_names=1sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTIONcollation-server=utf8_unicode_ciskip-character-set-client-handshakeskip-name-resolvepid-file        = /var/run/mysqld/mysqld.pidsocket          = /var/run/mysqld/mysqld.sockdatadir         = /var/lib/mysqlsecure-file-priv= NULL# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0# 主從同步server-id = 2log-bin = mysql-binsync_binlog = 1binlog_checksum = nonebinlog_format = mixedslave-skip-errors = allevent_scheduler = 1max_allowed_packet = 64Mread-only=1# Custom config should go here!includedir /etc/mysql/conf.d/
---
# headless service
apiVersion: v1
kind: Service
metadata:name: mysql-slave-svcnamespace: mysqllabels:app: mysql-slave-svc
spec:clusterIP: Noneports:- name: slave-portport: 3306selector:app: mysql-slave
---
# NodePort service
apiVersion: v1
kind: Service
metadata:name: mysql-slave-nodeportnamespace: mysqllabels:app: mysql-slave-nodeport
spec:clusterIP:ports:- name: slave-portport: 3306nodePort: 31307targetPort: 3306selector:app: mysql-slavetype: NodePorttarget-port:externalTrafficPolicy: Cluster
---
apiVersion: apps/v1
kind: StatefulSet
metadata:name: mysql-slavenamespace: mysql
spec:serviceName: "mysql-slave-svc"replicas: 1selector:matchLabels:app: mysql-slavetemplate:metadata:labels:app: mysql-slavespec:containers:- name: mysql-slaveimage: mysql:8.0.20ports:- containerPort: 3306name: slave-portenv:- name: MYSQL_ROOT_PASSWORDvalue: "root"- name: TZvalue: "Asia/Shanghai"volumeMounts:- name: mycnfmountPath: /etc/mysql/my.cnfsubPath: my.cnf- name: mysql-slave-datamountPath: /var/lib/mysqlvolumes:- name: mycnfconfigMap:name: mysql-slave-config- name: mysql-slave-datanfs:server: 192.168.110.190 path: /data/data/mysql-slave

三、主從配置

主節點操作

獲取mysql的內部ip?

kubectl get svc -n mysql

1.登錄主節點

MySQL mysql -h 192.168.40.12 -P 31306 -u root -proot

show master status;

mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File ? ? ? ? ? ? | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000004 | ? ? ?152 | ? ? ? ? ? ? ?| ? ? ? ? ? ? ? ? ?| ? ? ? ? ? ? ? ? ? |
+------------------+----------+--------------+------------------+-------------------+
2.創建從節點數據同步用戶
CREATE USER 'replica'@'%' IDENTIFIED WITH mysql_native_password BY 'replica123';
GRANT REPLICATION SLAVE ON *.* TO 'replica'@'%';
FLUSH PRIVILEGES;
?

?從節點操作

1.登錄從節點
mysql -h 192.168.110.190 -P 31307 ?-u root -proot
2.同步指向主節點
CHANGE MASTER TO MASTER_HOST='mysql-master-svc',MASTER_USER='replica',MASTER_PASSWORD='replica123',MASTER_LOG_FILE='mysql-bin.000004',MASTER_LOG_POS=152,MASTER_PORT=3306;
3.開啟同步
start slave;

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/23799.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/23799.shtml
英文地址,請注明出處:http://en.pswp.cn/web/23799.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MySQL Doublewrite Buffer 有了解過嗎?

引言:在數據庫管理中,確保數據的完整性和一致性是至關重要的。然而,在持久化數據到磁盤的過程中,可能會遇到各種意外情況,如斷電或系統崩潰,從而導致部分數據寫入,而另一部分數據未能成功寫入&a…

揭秘!如何從精益生產轉向智能制造

企業在“工業4.0、智能制造、互聯網”等概念滿天飛的環境下迷失了方向,不知該如何下手,盲目跟風。 君不見,很多企業在“工業4.0、智能制造、互聯網”等概念滿天飛的環境下迷失了方向,不知該如何下手,盲目跟風&#xf…

D365 使用 X++ 設置采購行的財務維度組合

文章目錄 前言一、代碼 前言 使用 X 設置采購行的財務維度組合 一、代碼 PurchLine purchLine;DimensionAttributeValueSetStorage dimensionAttributeValueSetStorage;DimensionAttributeValue dimensionAttributeValue;DimensionAt…

2024下《系統集成項目管理工程師》50個高頻考點匯總!值得收藏

寶子們!5月軟考考完了,終于可以考系統集成了! 整理了50個高頻考點,涵蓋全書90%考點,先把這個存下!再慢慢看書,邊看書邊背這個 1、信息安全的基本要素有: (1&#xff09…

邁入智能新紀元:智慧機房運維系統引領行業變革

在數字化飛速發展的今天,機房作為信息時代的“心臟”,其穩定運行對于企業的業務連續性至關重要。然而,傳統的機房運維模式面臨著諸多挑戰,如響應速度慢、故障定位難、資源浪費大等問題。智慧機房運維系統,它將以智能化…

Java【問題 07】SSH不同版本使用jsch問題處理(7.4升級9.7及歐拉原生8.8)

SSH不同版本使用jsch問題處理 1.問題一2.問題二2.1 說明2.2 解決 3.問題三 1.問題一 # 1.系統 cat /etc/os-release # 系統信息 NAME"openEuler" VERSION"22.03 (LTS-SP1)" ID"openEuler" VERSION_ID"22.03" PRETTY_NAME"openEu…

nginx快速刪除一行

使用光標定位到要刪除的行,連續按兩次鍵盤上的字母d,則可刪除; 如果原先在編輯模式下,按esc鍵退出編輯模式,然后定位到要刪除的位,按2次d,則可快速刪除,刪除后想繼續編輯&#xff0…

延時任務工具類

自定義工具類 package com.sxfoundation.task;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.task.TaskRejectedException; import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler; import org.spri…

重磅:吳恩達最新的機器學習書籍《Machine Learning Yearning》兩年磨一劍

《Machine Learning Yearning》是吳恩達歷時兩年打磨而成的機器學習和深度學習實踐寶典。這本書旨在為讀者提供實戰經驗,以幫助他們在機器學習項目中取得成功。 吳恩達通過自身多年的實踐經驗,為讀者提供了寶貴的指導,涵蓋了從項目構建到調試…

AndroidX Navigation 反復創建Fragment問題修復

目錄 解決辦法如何使用參考文檔解決辦法 自定義 FragmentNavigator,替換系統的,系統對應的 FragmentNavigator Key 為 "fragment",代碼如下,可直接拷貝使用。 import android.content.Context import android.util.Log import androidx.annotation.IdRes impor…

ts類型聲明文件、內置聲明文件

1. ts類型聲明文件 在ts中以d.ts為后綴的文件就是類型聲明文件,主要作用是為js模塊提供類型信息支持,從而獲得類型提示 1.1 第三方包用ts編寫的,會自動生成一個 .d.ts文件,進行類型聲明 1.2 有些包不是用ts編寫的,在…

【HashMap】CAS的定義及優缺點

CAS(Compare-And-Swap,比較并交換)是一種原子操作,用于實現無鎖(lock-free)的并發數據結構。它是現代處理器支持的一種硬件指令,能夠保證在多線程環境下進行變量更新時的原子性。CAS 操作包含三…

LangChain真的好用嗎?談一下LangChain封裝FAISS的一些坑

前言 最近在做一個知識庫問答項目,就是現在大模型浪潮下比較火的 RAG 應用。LangChain 可以說是 RAG 最受歡迎的工具,因此我首選 LangChain 來快速構建我的應用。坦白來講 LangChain 本身一套對于組件的定義已經讓我感覺很復雜,為什么采用 f…

Java Web學習筆記6——盒子模型

視頻標簽&#xff1a;<video> src: 規定視頻的URL controls&#xff1a;顯示播放控件 width&#xff1a;播放器的寬度 height&#xff1a;播放器的高度 音頻標簽&#xff1a;<audio> src: 規定音頻的URL controls: 顯示播放控件 段落標簽&#xff1a;<p&g…

npm yarn 更換國內源以及node歷史版本下載地址

npm 更換國內源 npm config set registryhttps://registry.npmmirror.com npm config set electron_mirrorhttps://registry.npmmirror.com/electron/yarn 更換國內源 yarn config set registry https://registry.npmmirror.comnode歷史版本下載地址 https://nodejs.org/dow…

Git版本控制:核心概念、操作與實踐

Git是一種分布式版本控制系統&#xff0c;被廣泛應用于軟件開發過程中。本文將介紹Git的核心概念、常用操作以及最佳實踐&#xff0c;幫助讀者掌握Git的基本技巧&#xff0c;提高團隊協作效率。 一、引言 在軟件開發過程中&#xff0c;版本控制是至關重要的。它能幫助我們跟蹤…

Flutter InAppWebView Unknown feature SUPPRESS_ERROR_PAGE

在使用InAppWebView的initialData加載html代碼的時候,出現java.lang.RuntimeException: Unknown feature SUPPRESS_ERROR_PAGE的出錯誤 E/MethodChannel#flutter/platform_views(16853): Failed to handle method call E/MethodChannel#flutter/platform_views(16853):<

linux驅動學習(七)之混雜設備

需要板子一起學習的可以這里購買&#xff08;含資料&#xff09;&#xff1a;點擊跳轉 一、混雜設備 混雜設備也叫雜項設備&#xff0c;是對普通的字符設備(struct cdev)的一種封裝,設計目的就是為了簡化字符設備驅動設計的流程。具有以下特點&#xff1a; 1) 主設備號為10&a…

全面解析:滲壓計數據如何預測地下水趨勢

隨著人們對水資源日益增長的需求和對環境保護意識的提升&#xff0c;地下水位的監測和預測成為了水利工程和環境科學領域的重要研究內容。滲壓計作為一種能夠測量土壤或巖石中孔隙水壓力的儀器&#xff0c;在地下水位的監測中發揮著關鍵作用。本文將從滲壓計的工作原理、安裝方…

初探富文本之基于虛擬滾動的大型文檔性能優化方案

初探富文本之基于虛擬滾動的大型文檔性能優化方案 虛擬滾動是一種優化長列表性能的技術&#xff0c;其通過按需渲染列表項來提高瀏覽器運行效率。具體來說&#xff0c;虛擬滾動只渲染用戶瀏覽器視口部分的文檔數據&#xff0c;而不是整個文檔結構&#xff0c;其核心實現根據可…