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

k8s部署mysql并使用nfs持久化数据

k8s部署mysql并使用nfs持久化数据

  • 一、配置nfs服务器
    • 1.1 修改配置文件
    • 1.2. 载入配置
    • 1.3. 检查服务配置
  • 二、创建K8S资源文件
    • 2.1 mysql-deployment.yml
    • 2.2 mysql-svc.yml

一、配置nfs服务器

参考文章:

  1. pod使用示例https://cloud.tencent.com/developer/article/1914388
  2. nfs配置示例https://blog.csdn.net/weixin_43466725/article/details/88252404
  3. nfs介绍https://blog.csdn.net/qq_41959899/article/details/105899689

1.1 修改配置文件

连接nfs服务器,vim /etc/exports修改exports文件内容:
在这里插入图片描述
说明:
/data/monitor-test/tracing/mysql_data目录是用来作为数据持久化的目录

每一条数据对应的ip是k8s的节点IP(node),把k8s的所有node都配置上去

1.2. 载入配置

执行命令exportfs -rv载入配置

1.3. 检查服务配置

执行命令showmount -e查看是否添加成功:
在这里插入图片描述

二、创建K8S资源文件

2.1 mysql-deployment.yml

创建mysql-deployment.yml文件:

apiVersion: apps/v1                             # apiserver的版本
kind: Deployment                                # 副本控制器deployment,管理pod和RS
metadata:name: mysql-nfs                                  # deployment的名称,全局唯一namespace: kube-monitor                           # deployment所在的命名空间labels:app: mysql
spec:replicas: 1                                   # Pod副本期待数量selector:matchLabels:                                # 定义RS的标签app: mysql                                # 符合目标的Pod拥有此标签strategy:                                     # 定义升级的策略type: RollingUpdate                         # 滚动升级,逐步替换的策略template:                                     # 根据此模板创建Pod的副本(实例)metadata:labels:app: mysql                              # Pod副本的标签,对应RS的Selectorspec:nodeName: 192.168.1xx.1xx                    # 指定pod运行在的nodecontainers:                               # Pod里容器的定义部分- name: mysql                           # 容器的名称image: 192.168.116.12x:18080/monitor-test/mysql:5.7.42                      # 容器对应的docker镜像volumeMounts:                         # 容器内挂载点的定义部分- name: time-zone                   # 容器内挂载点名称mountPath: /etc/localtime         # 容器内挂载点路径,可以是文件或目录- name: nfs-mysql-datamountPath: /var/lib/mysql         # 容器内mysql的数据目录- name: nfs-mysql-logsmountPath: /var/log/mysql         # 容器内mysql的日志目录ports:- containerPort: 3306               # 容器暴露的端口号env:                                  # 写入到容器内的环境容量- name: MYSQL_ROOT_PASSWORD         # 定义了一个mysql的root密码的变量value: "root"volumes:                                  # 本地需要挂载到容器里的数据卷定义部分- name: time-zone                       # 数据卷名称,需要与容器内挂载点名称一致hostPath:path: /etc/localtime                # 挂载到容器里的路径,将localtime文件挂载到容器里,可让容器使用本地的时区- name: nfs-mysql-datanfs:server: 192.168.116.1xx  # nfs服务器地址path: /data/monitor-test/tracing/mysql_data/data          # nfs存放mysql数据的目录- name: nfs-mysql-logsnfs:server: 192.168.116.1xxpath: /data/monitor-test/tracing/mysql_data/logs              # nfs存入mysql日志的目录

执行命令创建deployment:kubectl apply -f mysql-deployment.yml

2.2 mysql-svc.yml

创建mysql-svc.yaml文件:

apiVersion: v1
kind: Service
metadata:name: mysql-nfsnamespace: kube-monitorlabels:name: mysql
spec:type: NodePortports:- port: 3306targetPort: 3306nodePort: 30014selector:app: mysql

执行命令创建svc:kubectl apply -f mysql-svc.yml

http://www.lryc.cn/news/67655.html

相关文章:

  • AI时代的赚钱思路:23岁女网红如何利用AI技术年入4亿?
  • 如何修复d3dcompiler_47.dll缺失?多种解决方法分享
  • 【项目实训】ATM自助取款系统
  • 并查集算法
  • 十分钟在 macOS 快速搭建 Linux C/C++ 开发环境
  • 银河麒麟系统Arm64编译opencv指南
  • 蒙层禁止下方页面滚动防抖动完美方案
  • 微积分python基础
  • Redis缓存数据库(一)
  • 物联网|uart串口相关寄存器|波特率设置及计算|发送处理代码|串口接收中断处理函数|物联网之蓝牙4.0 BLE基础-学习笔记(7)
  • 有数·智享未来 | 新华三重磅发布绿洲平台3.0
  • 在Apex中获取Site URL
  • 【电子学会】2023年03月图形化三级 -- 比大小.md
  • Kali-linux使用Nessus
  • 青训营 x 训练营结营测试题目(前端方向)
  • 虚拟化技术介绍-VMware和Docker的区别
  • TinyHttpd 运行过程出现的问题
  • 【Linux】shell编程—数组
  • Maven仓库与Maven插件
  • 【溯源反制】CDN域前置云函数-流量分析|溯源
  • 【Vue】学习笔记-全局事件总线
  • MATLAB数值运算(六)
  • 某医院Pad网络故障分析
  • git 撤销中间某次提交,保留其他提交的方法
  • 空中下载技术(OTA)电控信息安全
  • 数据库sql语句(count(*)和count(字段))
  • 短视频矩阵源码系统
  • 检测数据类型
  • 【2023春招】4399 web后台-Java后端开发
  • 干货分享:PCB防静电设计的必要性