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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了