k8s启动单点mysql

前言

1)本文档使用k8s启动单点mysql,适用于开发/测试环境。
2)生产高可用集群: 《helm启动mysql-ha》
3)其他部署方式:《docker-compose启动mysql》《helm启动单节点mysql》
4))web管理工具推荐 :《k8s启动phpmyadmin》

yml文件

创建mysql目录,下边创建mysql-test.yml文件如下:

说明:这是个开发测试用的单点MySQL,我们用的是Deployment也没所谓。由于MySQL是有状态的,下边副本只能是1,否则你需要用StatefulSet来管理pod。

apiVersion: apps/v1
kind: Deployment
metadata:
name: mysql
namespace: mysql-test
spec:
replicas: 1
selector:
matchLabels:
app: mysql
template:
metadata:
labels:
app: mysql
spec:
containers:
- name: mysql
image: harbocto.xxx.com.cn/public/mysql:5.7
imagePullPolicy: IfNotPresent
env:
# root用户密码
- name: MYSQL_ROOT_PASSWORD
value: liubei@2021
# 创建一个普通用户
- name: MYSQL_REPLICATION_USER
value: "liubei"
# 前边创建用户的密码
- name: MYSQLREPLICAITONPASSWO
value: "liubei@2021"
ports:
- containerPort: 3306
volumeMounts:
- name: mysql-data
mountPath: /var/lib/mysql
- mountPath: /etc/mysql/my.cnf
name: mysqlcnf
subPath: my.cnf
volumes:
- name: mysql-data
persistentVolumeClaim:
claimName: mysql
- name: mysqlcnf
configMap:
name: mysqlcnf
---
apiVersion: v1
kind: ConfigMap
metadata:
name: mysqlcnf
namespace: mysql-test
data:
my.cnf: |
# 这里是mysql的配置文件
# 虽然主公这个懒家伙什么也没有留下,但是不影响mysql启动
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
---
apiVersion: v1
kind: Service
metadata:
name: mysql
namespace: mysql-test
spec:
type: NodePort
ports:
- port: 3306
targetPort: 3306
nodePort: 30200
selector:
app: mysql
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: mysql
namespace: mysql-test
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi

启动

kubectl create -f mysql-test.yml

访问

在这里插入图片描述


在这里插入图片描述

posted on   运维开发玄德公  阅读(13)  评论(0编辑  收藏  举报  

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示