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是否可以连接成功,效果如下

1.png

0条评论

发表评论