mysql容器持久化
01.在k8s运行时会出现一些小问题,当没有做持久化时,所有的数据都存在容器中,当容器死掉,容器就会删掉mysql持久化,然后会自动起一个新的容器,但是数据会丢失。
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 image.png image.png 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 持久化数据已成功 image.png image.png image.png (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |