k8s部署Mysql
- 2021-11-24 17:10:54
- 运维
- 831
- shevechco
在Kubernetes上部署数据库时,需要使用持久性存储卷为Pod提供存储。
首先创建pv和pvc,然后再将两者绑定,Persistent Volume 和 Persistent Volume Claim,主要是管理服务持久化的存储资源 Volume
创建持久卷mysql_pv.yaml
apiVersion: v1 kind: PersistentVolume metadata: name: mysql-pv labels: type: local spec: storageClassName: localhdd capacity: storage: 20Gi accessModes: - ReadWriteOnce hostPath: path: "/data/mysql"
这将创建一个持久卷,我们将使用它来附加到容器,以确保Pod重启时的数据安全。该持久卷具有ReadWriteOne访问模式,拥有20GB的存储空间,存放路径是/data/mysql,我们所有的数据都将保存在该路径中
执行创建命令创建资源
kubectl create -f mysql_pv.yaml
创建持久卷声明mysql_pvc.yaml
kind: PersistentVolumeClaim metadata: name: mysql-pvc spec: storageClassName: localhdd accessModes: - ReadWriteOnce resources: requests: storage: 20Gi
执行创建命令创建资源
kubectl create -f mysql_pvc.yaml
然后我们在k8s集群上部署这个有状态服务mysql_service.yaml
apiVersion: v1 kind: Service metadata: name: mysql spec: type: NodePort ports: - port: 3306 targetPort: 3306 nodePort: 13306 selector: app: mysql selector: app: mysql
首先,我们在端口3306上为MySQL数据库部署服务,所有Pod均具有标签键app: mysql
接下来,创建以下资源
kubectl create -f mysql_service.yaml
然后创建mysql deployment资源mysql_deploy.yaml
apiVersion: apps/v1 kind: Deployment metadata: name: mysql spec: selector: matchLabels: app: mysql template: metadata: labels: app: mysql spec: containers: - name: mysql image: mysql:5.7 env: - name: MYSQL_ROOT_PASSWORD value: "password" ports: - containerPort: 3306 volumeMounts: - name: mysql-persistent-storage mountPath: /var/lib/mysql volumes: - name: mysql-persistent-storage persistentVolumeClaim: claimName: mysql-pvc
kubectl create -f mysql_deploy.yaml
内容版权声明:除非注明,否则皆为本站原创文章。
转载注明出处:http://www.sulao.cn/post/801
相关推荐
- mysql8登录报错Host '127.0.0.1' is not allowed to connect...
- python使用peewee(ORM)操作mysql数据库
- k8s存储pv/pvc中的subPath的使用详解
- k8s容器退出码详细信息介绍
- k8s调度GPU节点并挂载GPU设备
- mysql更改数据库引擎的方法
- k8s使用nfs报错selfLink was empty, can't make reference
- centos7使用haproxy部署k8s高可用集群
- centos7部署k8s多master高可用集群(k8s+containerd+nginx+keepalived)
- centos下k8s集群docker切换containerd