k8s部署mysql单机版

news/2025/3/5 11:03:18/文章来源:https://www.cnblogs.com/hxlasky/p/18752186

环境:
Os:Centos 7
k8s:1.28

1.创建名称空间

kubectl create namespace ns-mysql

 

2.创建secret

[root@master single]# more 1-secret.yaml 
apiVersion: v1
data:MYSQL_ROOT_PASSWORD: bXlzcWw= #密码mysql 采用base64编码后结果
kind: Secret
metadata:name: mysql-secretnamespace: ns-mysql
type: Opaque
kubectl apply -f 1-secret.yaml

 

3.创建configmap

[root@master single]# more 2-configmap.yaml 
apiVersion: v1
kind: ConfigMap
metadata:name: mysql-cnfnamespace: ns-mysql
data:my.cnf: |-[client]default-character-set=utf8mb4[mysql]default-character-set=utf8mb4[mysqld]init_connect='SET collation_connection = utf8mb4_general_ci'init_connect='SET NAMES utf8mb4'interactive_timeout=86400wait_timeout=86400max_connections = 5000character-set-server=utf8mb4collation-server=utf8mb4_general_ciskip-character-set-client-handshakeskip-name-resolve#master-slaver repicationserver_id=1log-bin=mysql-binread-only=0replicate-ignore-db=mysqlreplicate-ignore-db=sysreplicate-ignore-db=information_schemareplicate-ignore-db=performance_schemagtid_mode=ONenforce_gtid_consistency = ONlower_case_table_names=1sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

 

kubectl apply -f 2-configmap.yaml

 

4.创建pv 

[root@master single]# more 3-pv.yaml 
apiVersion: v1
kind: PersistentVolume
metadata:name: mysql-pvnamespace: ns-mysql
spec:accessModes:- ReadWriteOncecapacity:storage: 5Ginfs:path: /k8s/mysqlreadOnly: falseserver: 192.168.1.102

 

kubectl apply -f 3-pv.yaml

 

5.创建pvc

[root@master single]# more 4-pvc.yaml 
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: mysql-pvcnamespace: ns-mysql
spec:accessModes:- ReadWriteOnceresources:requests:storage: 5GivolumeName: mysql-pv

 

kubectl apply -f 4-pvc.yaml

 

6.创建sts

[root@master single]# more 5-sts.yaml 
apiVersion: apps/v1
kind: StatefulSet
metadata:namespace: ns-mysqllabels:app: mysql-hxl       ##可自定义名称name: mysql-hxl-sts    ##可自定义名称annotations:kubesphere.io/alias-name: mysql-hxl ##可自定义名称
spec:replicas: 1selector:matchLabels:app: mysql-hxltemplate:metadata:labels:app: mysql-hxl ##必须与spec.selector 同名称annotations:kubesphere.io/containerSecrets: nulllogging.kubesphere.io/logsidecar-config: '{}'spec:containers:- name: hxl-container##type: workerimagePullPolicy: IfNotPresentresources:requests:cpu: '0.01'memory: 10Milimits:cpu: '0.98'memory: 1700Miimage: registry.cn-shenzhen.aliyuncs.com/hxlk8s/mysql:5.7.30ports:- name: tcp-3306protocol: TCPcontainerPort: 3306##servicePort: 3306- name: tcp-33060protocol: TCPcontainerPort: 33060##servicePort: 33060env:- name: MYSQL_ROOT_PASSWORDvalueFrom:secretKeyRef:name: mysql-secretkey: MYSQL_ROOT_PASSWORDvolumeMounts:- name: hxl-cnf-volume  ##必须与volumes定义的同名称readOnly: falsemountPath: /etc/mysql- name: hxl-data-volume ##必须与volumes定义的同名称readOnly: falsemountPath: /var/lib/mysqlserviceAccount: defaultaffinity:podAntiAffinity:preferredDuringSchedulingIgnoredDuringExecution:- weight: 100podAffinityTerm:labelSelector:matchLabels:app: mysql-hxltopologyKey: kubernetes.io/hostnameinitContainers: []imagePullSecrets: nullvolumes:- name: hxl-cnf-volume     #映射configMap信息configMap:name: mysql-cnfitems:- key: my.cnfpath: my.cnf- name: hxl-data-volume    #映射pvc信息persistentVolumeClaim:claimName: mysql-pvcupdateStrategy:type: RollingUpdaterollingUpdate:partition: 0

 

kubectl apply -f 5-sts.yaml

 

8.创建nodeport service

[root@master single]# more 7-nodeport-svc.yaml 
apiVersion: v1
kind: Service
metadata:name: mysql-frontlabels:app: mysql-hxlnamespace: ns-mysql
spec:selector:app: mysql-hxltype: NodePortports:- name: ''port: 3306protocol: TCPtargetPort: 3306nodePort: 30001  #指定主机任意端口30000-32767sessionAffinity: None
kubectl apply -f 7-nodeport-svc.yaml

 

9.通过客户端连接
使用端口30001

/opt/mysql57/bin/mysql -h 192.168.1.102 -uroot -pmysql -P30001
/opt/mysql57/bin/mysql -h 192.168.1.105 -uroot -pmysql -P30001
/opt/mysql57/bin/mysql -h 192.168.1.106 -uroot -pmysql -P30001

mysql> select user,host from mysql.user;
+---------------+-----------+
| user          | host      |
+---------------+-----------+
| root          | %         |
| mysql.session | localhost |
| mysql.sys     | localhost |
| root          | localhost |
+---------------+-----------+
4 rows in set (0.00 sec)mysql> show grants for 'root'@'%';
+-------------------------------------------------------------+
| Grants for root@%                                           |
+-------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION |
+-------------------------------------------------------------+
1 row in set (0.00 sec)

该账号默认对连接客户端不做限制.

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/893923.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux另类实现matlab编辑器的vim模式

使用matlab编程练习中,发现matlab的自带的编辑器也不错,主要是分节运行非常方便,但是没有vim模式有点难受。经过摸索,变相实现了matlab中的编辑器的vim模式。安装好linux下matlab 2024a,其他版本也无所谓,安装好vim,我的是最新版本。左边显示器垂直放置,右边显示器水平…

在Unity转微信小游戏下,如何用Worker实现多线程

1)在Unity转微信小游戏下,如何用Worker实现多线程2)Unity的jslib库和微信小游戏的game.js如何互相调用函数或者通信3)如何在Unity中实现资源的深度复制这是第422篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社区帖子等技术知识点,助力大家更全面地…

YASKAWA喷涂机器人维修的常见问题

一、安川机器人示教器维修步骤详解 - 检查电源供应:确保电源供应正常,检查电源模块是否有短路或其他损坏。 - 检查连接:检查示教器与其他组件的连接是否牢固,包括电缆、插头等。 - 检查电路板:检查示教器电路板上的电子元件是否有明显的损坏,如烧焦、膨胀…

面试官:谈谈你对线程池拒绝策略的理解?

线程池的拒绝策略是指,当线程池无法承载更多任务时执行的行为。也就是当线程池的核心线程数、最大线程、任务队列都满的情况下,又来了新的任务时,线程池执行的行为被称之为线程池的拒绝策略。 线程池的执行流程如下:1.内置拒绝策略 在 Java 中,线程池内置了以下四种拒绝策…

ABB IRB1410弧焊机器人示教器维修

在现代工业生产中,ABB IRB1410弧焊机器人发挥着重要的作用。然而,如同所有设备一样,它也可能面临各种故障,这就需要进行有效的维修,尤其是示教器部分的维修,这关系到整个弧焊机器人的正常运行。一、ABB机器人维修的重要性ABB机器人在工业领域广泛应用,其维修工作至关重要…

开发HarmonyOS NEXT版五子棋游戏实战

大家好,我是 V 哥。首先要公布一个好消息,V 哥原创的《鸿蒙HarmonyOS NEXT 开发之路 卷1:ArkTS 语言篇》图书终于出版了,有正在学习鸿蒙的兄弟可以关注一下,写书真是磨人,耗时半年之久,感概一下,希望可以帮助到正在入门鸿蒙开发的小伙伴,一书在手 ArkTS无优。 今天要给…

震撼发布!CodeArts 解锁全新技能,鸿蒙应用与元服务开发轻松拿捏

随着物联网和智能设备的迅速发展,操作系统的多元化需求日益凸显。鸿蒙系统作为华为研发的面向全场景的分布式操作系统,旨在打破不同设备之间的生态壁垒,实现跨设备的无缝协同。 在鸿蒙系统初期,开发者主要依赖本地开发工具和传统的开发流程,面临着诸多挑战。一方面,本地算…

单线程的Redis速度为什么快?

Redis 是一个采用单线程架构的高性能内存键值数据库。官方测试报告中,单机可支持 10w 左右的 QPS。博客:https://www.emanjusaka.com 博客园:https://www.cnblogs.com/emanjusaka 公众号:emanjusaka的编程栈by emanjusaka from https://www.emanjusaka.com/archives/redis…

易基因:m6A-seq+RNA-seq揭示KRAS突变通过调控ALKBH5翻译后修饰导致肺癌对铂类药物耐药|JCI

大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 KRAS基因突变在非小细胞肺癌(NSCLC)中非常常见,尤其是KRAS G12C、G12V、G12D等突变类型。这些突变通常导致KRAS蛋白处于持续激活状态,促进肿瘤发生和发展。然而,KRAS突变与铂类化疗耐药之间的关系尚不清楚…

AI制作

首先,我们需要设计数据库表结构。根据需求,我们需要两个表:仓库表和物资台账明细表。1.1 仓库表 (warehouse) 字段名 数据类型 描述 warehouse_id VARCHAR(10) 仓库编号(唯一) name VARCHAR(50) 仓库名称 location VARCHAR(100) 仓库位置 capacity INT 仓库容量 created_a…

为应用程序分配单个Sharepoint站点的权限

最近工作需要在Sharepoint Online上建立一个站点用于信息同步。另一个租户下有一个站点的信息将需要同步到这个新站点中。 为此,我们需要新建一个应用程序用于数据同步。这个可以在Microsoft Entra admin center中完成。找到Applications--App registrations在这里新建一个应用…

花3分钟来了解一下Vue3中的插槽到底是什么玩意

前言 插槽看着是一个比较神秘的东西,特别是作用域插槽还能让我们在父组件里面直接访问子组件里面的数据,这让插槽变得更加神秘了。其实Vue3的插槽远比你想象的简单,这篇文章我们来揭开插槽的神秘面纱。 欧阳也在找工作,坐标成都求内推! 看个demo 我们先来看个常见的插槽de…