Docker
kubernetes部署Mysql
kubernetes部署Mysql
今天抽空尝试在k8s集群上部署Mysql,最后在本地成功连上Mysql,特意记录下来分享给大家,主要分两部分操作,创建挂载持久卷配置文件以及部署服务文件。
一、准备挂载目录
我们为了让Mysql的数据持久化,准备弄一个持久卷当作Mysql的数据存储,我准备将/home/storageVolume/mysql当作挂载目录,我们创建名字为mysql-pv-claim.yaml的配置文件,准备当作持久卷申请配置文件,这里我们持久卷的容量设置为20GB,
大家可以根据自己的实际情况进行设置,创建完之后我们先保存,等会再来加载配置文件。
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: mysql-pv-claim labels: app: mysql spec: accessModes: - ReadWriteOnce resources: requests: storage: 20Gi #持久卷的容量是 20 GB
二、部署运行Mysql服务配置
我们创建名字为mysql-deployment-scale.yaml的文件,这里我们设置了持久卷名以及路径,同时指定外部访问端口30306,大家可以根据自己的情况进行设置,配置如下
apiVersion: apps/v1 kind: Deployment metadata: name: mysql-deployment spec: selector: matchLabels: app: mysql strategy: type: Recreate template: metadata: labels: app: mysql spec: containers: - image: mysql:latest name: mysql-con imagePullPolicy: Always env: - name: MYSQL_ROOT_PASSWORD value: 1234567 #数据库密码 args: ["--default-authentication-plugin=mysql_native_password"] ports: - containerPort: 3306 name: mysql volumeMounts: # 挂载Pod上的卷到容器 - name: mysql-persistent-storage # Pod上卷的名字,与“volumes”名字匹配 mountPath: /home/storageVolume/mysql # 挂载的Pod的目录 volumes: # 挂载持久卷到Pod - name: mysql-persistent-storage # 持久卷名字, 与“volumMounts”名字匹配 persistentVolumeClaim: claimName: mysql-pv-claim # 持久卷申请名字 --- apiVersion: v1 kind: Service metadata: name: mysql-service labels: app: mysql spec: type: NodePort selector: app: mysql ports: - protocol : TCP nodePort: 30306 port: 3306 targetPort: 3306
3、运行配置
完成以上配置文件操作之后,我们直接加载配置文件进行生效
kubectl apply -f mysql-pv-claim.yaml kubectl apply -f mysql-deployment-scale.yaml
运行之后我们可以直接连接mysql是否可以连接成功,效果如下
0条评论