加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_新乡站长网 (https://www.0373zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql容器持久化

发布时间:2022-12-22 11:29:12 所属栏目:MySql教程 来源:
导读:  1.为什么需要持久化存储

  01.在k8s运行时会出现一些小问题,当没有做持久化时,所有的数据都存在容器中,当容器死掉,容器就会删掉mysql持久化,然后会自动起一个新的容器,但是数据会丢失。

  2.k
  1.为什么需要持久化存储
 
  01.在k8s运行时会出现一些小问题,当没有做持久化时,所有的数据都存在容器中,当容器死掉,容器就会删掉mysql持久化,然后会自动起一个新的容器,但是数据会丢失。
 
  2.k8s引入了两个概念
 
  pv :persistent volume (全局资源) node
 
  pvc :persisternt volume claim (局部资源)namespace(pod、rc、svc)
 
  3.安装nfs服务端(10.0.0.11)可以是独立的
 
  yum install nfs-utils.x86_64 -y
 
  mkdir /data
 
  vim /etc/exports
 
  /data 10.0.0.0/24(rw,async,no_root_squash,no_all_squash)
 
  systemctl start rpcbind
 
  systemctl start nfs
 
  3.1在node节点安装nfs客户端
 
  yum install nfs-utils.x86_64 -y
 
  showmount -e 10.0.0.11
 
  3.2 master创建pv和pvc
 
  上传yaml配置文件
 
  vim mysql_pv.yaml
 
  apiVersion: v1
 
  kind: PersistentVolume
 
  metadata:
 
  name: tomcat-mysql ###全局唯一
 
  labels:
 
  type: nfs001 ### pvc会根据标签来选择pv
 
  spec:
 
  capacity: ### 可以提供10G的存储
 
  storage: 10Gi
 
  accessModes: ### 支持多个pod同时挂载存储
 
  - ReadWriteMany
 
  persistentVolumeReclaimPolicy: Recycle ### pvc回收策略(支持回收)
 
  nfs:
 
  path: "/data/tomcat-mysql" ### nfs服务器目录
 
  server: 10.0.0.11 ### nfs服务器地址
 
  readOnly: false ###只读类型 (可写)
 
  查看yaml值层级关系
 
  kubectl explain pv.spec.persistentVolumeReclaimPolicy
 
  创建共享目录
 
  mkdir -p /data/tomcat-mysql
 
  创建pv
 
  kubectl create -f mysql_pv.yaml
 
  查看pv
 
  kubectl get pv -o wide
 
  vim mysql_pvc.yaml
 
  apiVersion: v1
 
  metadata:
 
  name: tomcat-mysql
 
  spec:
 
  accessModes: ##指定访问模式 多pod读写
 
  - ReadWriteMany
 
  resources: ### 需要的资源空间
 
  requests:
 
  storage: 1Gi
 
  创建pvc
 
  kubectl create -f mysql_pvc.yaml
 
  查看pvc
 
  kubectl get pvc -o wide
 
  3.3启动一个新mysql pod使用volume
 
  vim mysql-rc-pvc.yml
 
  apiVersion: v1
 
  kind: ReplicationController
 
  metadata:
 
  name: mysql
 
  spec:
 
  replicas: 1
 
  selector:
 
  app: mysql
 
  template:
 
  metadata:
 
  labels:
 
  app: mysql
 
  spec:
 
  containers:
 
  - name: mysql
 
  image: 10.0.0.11:5000/mysql:5.7
 
  ports:
 
  - containerPort: 3306
 
  env:
 
  - name: MYSQL_ROOT_PASSWORD
 
  value: '123456'
 
  volumeMounts:
 
  - name: mysql
 
  mountPath: /var/lib/mysql
 
  volumes:
 
  - name: mysql
 
  persistentVolumeClaim:
 
  claimName: tomcat-mysql ### pvc的名字
 
  kubectl create -f mysql-rc-pvc.yml
 
  持久化数据已成功
 
 

(编辑:开发网_新乡站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!