前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kubernetes部署MySQL5.7单机---NFS存储

Kubernetes部署MySQL5.7单机---NFS存储

作者头像
院长技术
发布2022-03-23 15:52:40
1K0
发布2022-03-23 15:52:40
举报
文章被收录于专栏:院长运维开发院长运维开发

实验目的:

代码语言:javascript
复制
将MySQL5.7使用nfs持久化存储部署到Kubernetes集群中

nfs存储地址:

代码语言:javascript
复制
nfs.myit.icu

nfs存储配置:

代码语言:javascript
复制
临时测试---100G
安装nfs
yum install -y nfs-utils rpcbind
创建nfs存储目录
[root@nfs ~]#mkdir /data/nfsData -p
格式化磁盘
[root@nfs ~]#mkfs.ext4 /dev/vdb
挂载磁盘到nfs存储目录
[root@nfs ~]#mount /dev/vdb /data/nfsData/
设置硬盘开机自动挂载
[root@nfs ~]#vim /etc/fstab
/dev/vdb /data/nfsData ext4 defaults  
设置nfs存储目录权限
[root@nfs ~]#chmod -R 777 /data/nfsData/
进入到存储目录
[root@nfs ~]#cd /data/nfsData/
创建数据库存储目录
[root@nfs /data/nfsData]#mkdir Bystart_MySQL_5_7
设置nfs配置---生产最好设置一个B或者C或者单个IP,不要用*
[root@nfs ~]#vim /etc/exports
/data/nfsData *(rw,no_root_squash,no_all_squash,sync)
/data/nfsData/Bystart_MySQL_5_7 *(rw,no_root_squash,no_all_squash,sync)
设置开机自启并启动
[root@nfs ~]#systemctl enable rpcbind --now
[root@nfs ~]#systemctl enable nfs --now

注意:

K8s各节点请安装以下软件,来确保集群支持NFS

代码语言:javascript
复制
yum install -y nfs-utils rpcbind

创建yaml存放目录并进入

代码语言:javascript
复制
mkdir Bystart_MySQL_5_7 && cd Bystart_MySQL_5_7

创建MySQL PV资源清单

vim mysql57_pv.yaml

代码语言:javascript
复制
apiVersion: v1
kind: PersistentVolume
metadata:
  name: bystart-mysql-5-7-data-pv
spec:
  capacity:
    storage: 15Gi
  accessModes:
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Retain
  nfs:
    path: /data/nfsData/Bystart_MySQL_5_7      #nfs共享目录
    server: nfs.myit.icu     #nfs服务器地址

创建MySQL PVC资源清单

vim mysql57_pvc.yaml

代码语言:javascript
复制
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: bystart-mysql-5-7-data-pvc
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 10Gi

创建MySQL Deployment资源清单---我们需要的镜像为:MySQL:5.7,为了部署顺利,可以提前在各节点下载该镜像

vim mysql57_deployment.yaml

代码语言:javascript
复制
apiVersion: apps/v1
kind: Deployment
metadata:
  name: bystart-mysql-5-
spec:
  replicas: 
  template:
    metadata:
      labels:
        name: bystart-mysql
    spec:
      containers:
        - name: mysql
          image: mysql:5.7
          imagePullPolicy: IfNotPresent
          ports:
            - name: db
              containerPort: 
          env:
            - name: MYSQL_ROOT_PASSWORD
              value: "taozi.cn"  #数据库密码
          volumeMounts:
            - mountPath: /var/lib/mysql
              name: bystart-mysql-data
      volumes:
        - name: bystart-mysql-data
          persistentVolumeClaim:
            claimName: bystart-mysql-5-7-data-pvc
  selector:
    matchLabels:
      name: bystart-mysql

创建MySQL SVC资源清单

vim mysql57_svc.yaml

代码语言:javascript
复制
apiVersion: v1
kind: Service
metadata:
  name: bystart-mysql-5-
spec:
  type: NodePort
  ports:
    - port: 
      targetPort: 
      nodePort: 
  selector:
    name: bystart-mysql

开始部署---这个文档没部署到指定命名空间下,如果生产环境,先创建命名空间,将资源部署到指定命名空间下即可!

代码语言:javascript
复制
[root@master1 ~/Bystart_MySQL_5_7]#kubectl create -f mysql57_pv.yaml
代码语言:javascript
复制
persistentvolume/bystart-mysql-5-7-data-pv created
代码语言:javascript
复制
[root@master1 ~/Bystart_MySQL_5_7]#kubectl create -f mysql57_pvc.yaml
代码语言:javascript
复制
persistentvolumeclaim/bystart-mysql-5-7-data-pvc created
代码语言:javascript
复制
[root@master1 ~/Bystart_MySQL_5_7]#kubectl apply -f mysql57_deployment.yaml
代码语言:javascript
复制
deployment.apps/bystart-mysql-5-7 created
代码语言:javascript
复制
[root@master1 ~/Bystart_MySQL_5_7]#kubectl create -f mysql57_svc.yaml
代码语言:javascript
复制
service/bystart-mysql-5-7 created

查看PV信息

代码语言:javascript
复制
root@master1 ~/Bystart_MySQL_5_7]#kubectl get pv
代码语言:javascript
复制
NAME                        CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM   STORAGECLASS   REASON   AGE
bystart-mysql-5-7-data-pv   15Gi       RWX            Retain           Available                                   4s

查看PVC信息

代码语言:javascript
复制
[root@master1 ~/Bystart_MySQL_5_7]#kubectl get pvc
代码语言:javascript
复制
NAME                         STATUS   VOLUME                      CAPACITY   ACCESS MODES   STORAGECLASS   AGE
bystart-mysql-5-7-data-pvc   Bound    bystart-mysql-5-7-data-pv   15Gi       RWX                           7s

查看Pod信息

代码语言:javascript
复制
[root@master1 ~/Bystart_MySQL_5_7]#kubectl get pods
代码语言:javascript
复制
NAME                                 READY   STATUS    RESTARTS   AGE
bystart-mysql-5-7-7556448d47-jj7dw   1/1     Running   0          43m
myapp-deploy-64d6d979b7-kpm7v        1/1     Running   0          30d
myapp-deploy-64d6d979b7-pblx8        1/1     Running   0          30d
myapp-deploy-64d6d979b7-tzlgt        1/1     Running   0          30d
nginx-dm-6c75d65c4b-g954p            1/1     Running   0          28d
nginx-dm-6c75d65c4b-m4hrz            1/1     Running   0          28d

查看svc信息

代码语言:javascript
复制
[root@master1 ~/Bystart_MySQL_5_7]#kubectl get svc
代码语言:javascript
复制
NAME                      TYPE           CLUSTER-IP      EXTERNAL-IP    PORT(S)                                     AGE
bystart-mysql-5-7         NodePort       10.105.79.87    <none>         3306:32306/TCP                              43m
kubernetes                ClusterIP      10.96.0.1       <none>         443/TCP                                     79d
myapp                     ClusterIP      10.96.44.160    <none>         80/TCP                                      29d
myapp-externalname        ExternalName   <none>          hub.myit.icu   <none>                                      29d
myapp-headless            ClusterIP      None            <none>         80/TCP                                      29d
myapp-nodeport            NodePort       10.97.28.150    <none>         80:30842/TCP                                29d
nginx-svc                 ClusterIP      10.97.94.6      <none>         80/TCP                                      28d
traefik-ingress-service   NodePort       10.107.183.78   <none>         80:31044/TCP,8080:30316/TCP,443:30362/TCP   79d

结果:

代码语言:javascript
复制
通过Master的IP加上端口,账户密码即可连接到数据库

在nfs存储服务器上查看数据

代码语言:javascript
复制
[root@nfs /data/nfsData/Bystart_MySQL_5_7]#ll
代码语言:javascript
复制
total 188476
-rw-r----- 1 polkitd input       56 Jan  2 16:20 auto.cnf
-rw------- 1 polkitd input     1676 Jan  2 16:20 ca-key.pem
-rw-r--r-- 1 polkitd input     1112 Jan  2 16:20 ca.pem
-rw-r--r-- 1 polkitd input     1112 Jan  2 16:20 client-cert.pem
-rw------- 1 polkitd input     1680 Jan  2 16:20 client-key.pem
-rw-r----- 1 polkitd input     1353 Jan  2 16:21 ib_buffer_pool
-rw-r----- 1 polkitd input 79691776 Jan  2 16:21 ibdata1
-rw-r----- 1 polkitd input 50331648 Jan  2 16:21 ib_logfile0
-rw-r----- 1 polkitd input 50331648 Jan  2 16:20 ib_logfile1
-rw-r----- 1 polkitd input 12582912 Jan  2 16:21 ibtmp1
drwxr-x--- 2 polkitd input     4096 Jan  2 16:20 mysql
drwxr-x--- 2 polkitd input     4096 Jan  2 16:20 performance_schema
-rw------- 1 polkitd input     1680 Jan  2 16:20 private_key.pem
-rw-r--r-- 1 polkitd input      452 Jan  2 16:20 public_key.pem
-rw-r--r-- 1 polkitd input     1112 Jan  2 16:20 server-cert.pem
-rw------- 1 polkitd input     1676 Jan  2 16:20 server-key.pem
drwxr-x--- 2 polkitd input    12288 Jan  2 16:20 sys
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 实验目的:
  • nfs存储地址:
  • nfs存储配置:
  • 注意:
  • 创建yaml存放目录并进入
  • 创建MySQL PV资源清单
  • 创建MySQL PVC资源清单
  • 创建MySQL Deployment资源清单---我们需要的镜像为:MySQL:5.7,为了部署顺利,可以提前在各节点下载该镜像
  • 创建MySQL SVC资源清单
  • 开始部署---这个文档没部署到指定命名空间下,如果生产环境,先创建命名空间,将资源部署到指定命名空间下即可!
  • 查看PV信息
  • 查看PVC信息
  • 查看Pod信息
  • 查看svc信息
  • 结果:
  • 在nfs存储服务器上查看数据
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档