“K8s mysql NFS 持久化”的版本间的差异
跳到导航
跳到搜索
(→5.6) |
|||
(未显示同一用户的2个中间版本) | |||
第14行: | 第14行: | ||
pvc.yaml pv.yaml svc.yaml | pvc.yaml pv.yaml svc.yaml | ||
+ | |||
+ | pv pvc 通过 storageClassName: nfs 关联 | ||
cat pv.yaml | cat pv.yaml | ||
第161行: | 第163行: | ||
</pre> | </pre> | ||
+ | |||
+ | =pod mysql 密码= | ||
+ | <pre> | ||
+ | cat po.yml | ||
+ | apiVersion: v1 | ||
+ | kind: Pod | ||
+ | metadata: | ||
+ | creationTimestamp: null | ||
+ | labels: | ||
+ | run: pod11 | ||
+ | name: mysqldb1 | ||
+ | spec: | ||
+ | terminationGracePeriodSeconds: 0 | ||
+ | containers: | ||
+ | - image: m.daocloud.io/docker.io/library/mysql:5.7.25 | ||
+ | imagePullPolicy: IfNotPresent | ||
+ | name: c1 | ||
+ | resources: {} | ||
+ | env: | ||
+ | - name: MYSQL_ROOT_PASSWORD | ||
+ | value: mysql111 | ||
+ | dnsPolicy: ClusterFirst | ||
+ | restartPolicy: Always | ||
+ | status: {} | ||
+ | |||
+ | |||
+ | </pre> | ||
+ | |||
=mysql5.6= | =mysql5.6= | ||
第168行: | 第198行: | ||
[https://blog.csdn.net/weixin_43925277/article/details/104313863 MySQL的持久化部署(k8s与NFS)] | [https://blog.csdn.net/weixin_43925277/article/details/104313863 MySQL的持久化部署(k8s与NFS)] | ||
+ | |||
+ | |||
+ | [https://www.cnblogs.com/danny-djy/p/15948918.html 基于k8s的statefulset+pv安装mysql5.7主从集群 没成功] |
2024年10月5日 (六) 14:27的最新版本
k8s mysql5.7 NFS 持久化
NFS
root@debian11:~# mkdir -p /data/k8s/mysql57 root@debian11:~# chmod -R 0777 /data/k8s/mysql57 root@debian11:~# ls /data/k8s/mysql57
k8s yaml
root@k8s-master:~/mysql5.7# ls pvc.yaml pv.yaml svc.yaml pv pvc 通过 storageClassName: nfs 关联 cat pv.yaml apiVersion: v1 kind: PersistentVolume metadata: name: mysql57-pv-evan spec: accessModes: - ReadWriteOnce #指定访问模式 capacity: storage: 1Gi #存储容量 1G persistentVolumeReclaimPolicy: Retain #回收策略 Retain 管理员手工回收 Recycle #清除 PV 的数据 Delete 删除Storage Provider上的对应存储资源 storageClassName: nfs #指定PV 的class为nfs nfs: path: /data/k8s/mysql57 #PV在 NFS服务器上对应的目录 server: 192.168.88.122 cat pvc.yaml kind: PersistentVolumeClaim apiVersion: v1 metadata: name: mysql57-pvc-evan spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi storageClassName: nfs cat svc.yaml kind: PersistentVolumeClaim apiVersion: v1 metadata: name: mysql-pvc-evan spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi storageClassName: nfs apiVersion: v1 kind: Service metadata: name: mysql spec: type: NodePort ports: - protocol: TCP nodePort: 30306 port: 3306 targetPort: 3306 selector: app: mysql --- apiVersion: apps/v1 kind: Deployment metadata: name: mysql spec: selector: matchLabels: app: mysql template: metadata: labels: app: mysql spec: containers: - image: mysql:5.7 name: mysql env: - name: MYSQL_ROOT_PASSWORD value: password ports: - containerPort: 3306 name: mysql volumeMounts: - name: mysql-persistent-storage mountPath: /var/lib/mysql #挂载目录 volumes: - name: mysql-persistent-storage persistentVolumeClaim: claimName: mysql57-pvc-evan 依次执行 kubectl apply -f pv.yaml kubectl get pv kubectl apply -f pvc.yaml kubectl get pv,pvc kubectl apply -f svc.yaml kubectl get pod kubectl exec -it mysql-58ddb8d7f6-bhps5 bash root@k8s-master:~/mysql5.7# kubectl get pv,pvc NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE persistentvolume/mysql-nfs-pv 2Gi RWO Retain Terminating default/mysql-nfs-pvc nfs 2d1h persistentvolume/mysql-nfs-pv1 3Gi RWO Retain Bound default/mysql-nfs-pvc1 nfs 33h persistentvolume/mysql-pv 4Gi RWX Retain Bound default/mysql-claim nfs 36h persistentvolume/mysql57-pv-evan 1Gi RWO Retain Bound default/mysql57-pvc-evan nfs 18s persistentvolume/web-pv 2Gi RWX Retain Bound default/web-claim nfs 35h NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE persistentvolumeclaim/mysql-claim Bound mysql-pv 4Gi RWX nfs 36h persistentvolumeclaim/mysql-nfs-pvc Terminating mysql-nfs-pv 2Gi RWO nfs 2d1h persistentvolumeclaim/mysql-nfs-pvc1 Bound mysql-nfs-pv1 3Gi RWO nfs 33h persistentvolumeclaim/mysql57-pvc-evan Bound mysql57-pv-evan 1Gi RWO nfs 6s persistentvolumeclaim/web-claim Bound web-pv 2Gi RWX nfs 35h root@k8s-master:~/mysql5.7# node1ip 192.168.88.51 root@k8s-master:~/mysql5.7# kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE mysql NodePort 10.96.61.100 <none> 3306:30306/TCP 2d1h mysql -uroot -h192.168.88.51 -P30306 -p 或者 kubectl exec -it mysql-58ddb8d7f6-bhps5 bash mysql -uroot -ppassword create database evanmysq57; 回来 nfs 看一下 root@debian11:~# ls /data/k8s/mysql57/evanmysq57/ db.opt
pod mysql 密码
cat po.yml apiVersion: v1 kind: Pod metadata: creationTimestamp: null labels: run: pod11 name: mysqldb1 spec: terminationGracePeriodSeconds: 0 containers: - image: m.daocloud.io/docker.io/library/mysql:5.7.25 imagePullPolicy: IfNotPresent name: c1 resources: {} env: - name: MYSQL_ROOT_PASSWORD value: mysql111 dnsPolicy: ClusterFirst restartPolicy: Always status: {}
mysql5.6
和上次一样改了下 pv pvc image 名就行了