|
|
第1行: |
第1行: |
| [[category:k8s]]
| | =start= |
| =k8s mysql5.7 NFS 持久化= | |
| ==NFS==
| |
| <pre>
| |
| root@debian11:~# mkdir -p /data/k8s/mysql57
| |
| root@debian11:~# chmod -R 0777 /data/k8s/mysql57
| |
| root@debian11:~# ls /data/k8s/mysql57
| |
|
| |
|
| </pre>
| | 这个是利用aliyun 源安装本地k8s 环境 |
|
| |
|
| == k8s yaml==
| | [[使用阿里云镜像源快速搭建kubernetes(k8s) on debian10]] |
| <pre>
| |
| root@k8s-master:~/mysql5.7# ls
| |
| pvc.yaml pv.yaml svc.yaml
| |
|
| |
|
|
| |
|
| pv pvc 通过 storageClassName: nfs 关联
| | 需要把域名解析到服务service的公网ip上,暴露服务的方式有3种,使用slb、ingress和使用nodeport |
|
| |
|
| cat pv.yaml
| | 可参考下这篇文档 https://help.aliyun.com/document_detail/86512.html |
| 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
| |
|
| |
|
| | =see also= |
|
| |
|
| 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
| |
|
| |
|
|
| |
|
| | [https://hashmaparraylist.github.io/2020/04/01/%E9%98%BF%E9%87%8C%E4%BA%91Kubernetes%E4%B8%8A%E7%BA%BF%E8%B8%A9%E5%9D%91%E8%AE%B0/ 阿里云Kubernetes上线踩坑记] |
|
| |
|
| 依次执行
| | [https://mritd.me/2017/09/20/set-up-ha-kubernetes-cluster-on-aliyun-ecs/ 阿里云经典网络部署 Kubernetes] |
|
| |
|
| 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
| |
|
| |
|
| | [https://help.aliyun.com/document_detail/86748.html?spm=a2c4g.11174283.6.571.24062ceeHGHL16 部署有依赖关系的wordpress应用] |
|
| |
|
|
| |
|
| root@k8s-master:~/mysql5.7# kubectl get pv,pvc
| | [https://my.oschina.net/yunqi/blog/3041189 Kubernetes从懵圈到熟练:读懂这一篇,集群节点不下线] |
| 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
| | [https://yq.aliyun.com/articles/704175?spm=a2c4e.11153940.0.0.64326e3diZ2osk K8S从懵圈到熟练 – 集群网络详解] |
| 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
| | [https://yq.aliyun.com/articles/699200?utm_content=g_1000053701 K8S从懵圈到熟练:读懂这一篇,集群节点不下线] |
|
| |
|
| root@k8s-master:~/mysql5.7# kubectl get svc
| | [https://yq.aliyun.com/articles/704175?spm=a2c4e.11153940.0.0.64326e3diZ2osk# K8S从懵圈到熟练 – 集群网络详解] |
| 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;
| | [https://help.aliyun.com/document_detail/90406.html?spm=a2c4g.11186623.4.3.5ad84b4bfzmk7f 镜像创建无状态Deployment应用] |
|
| |
|
| 回来 nfs 看一下
| | [https://help.aliyun.com/document_detail/86740.html?spm=a2c4g.11186623.6.545.388f2d56PtsCrz 应用场景] |
| root@debian11:~# ls /data/k8s/mysql57/evanmysq57/
| |
| db.opt
| |
|
| |
|
| | [https://yq.aliyun.com/articles/697988 docker使用阿里云镜像仓库] |
|
| |
|
| | [https://help.aliyun.com/document_detail/86307.html?spm=a2c4g.11186623.4.3.32b7605dQ79eu3 使用私有镜像仓库创建应用] |
|
| |
|
| | [https://help.aliyun.com/document_detail/86536.html?spm=5176.2020520165.119.d86536.2d357029XalTRt 通过界面创建路由(Ingress)] |
|
| |
|
| </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: {}
| |
|
| |
|
| | [https://www.yunqikan.cn/1848.html 删除负载均衡实例] |
|
| |
|
| </pre>
| |
|
| |
|
| |
| =mysql5.6=
| |
| 和上次一样改了下 pv pvc image 名就行了
| |
|
| |
| =see also=
| |
|
| |
|
| [https://blog.csdn.net/weixin_43925277/article/details/104313863 MySQL的持久化部署(k8s与NFS)]
| | https://homenew.console.aliyun.com/ |
|
| |
|
|
| |
|
| [https://www.cnblogs.com/danny-djy/p/15948918.html 基于k8s的statefulset+pv安装mysql5.7主从集群 没成功] | | [[category:k8s]] |