当前位置:   article > 正文

K8S--安装MySQL8(单机)

K8S--安装MySQL8(单机)

原文网址:K8S--安装MySQL8(单机)-CSDN博客

简介

本文介绍K8S部署MySQL8(单机)的方法。

本文的目标

1.通过PV和PVC(hostPath方式)存储MySQL的数据
2.通过Deployment、Service部署MySQL8,并通过NodePort暴露给外部
3.使用Navicat进行测试

官网网址

运行一个单实例有状态应用 | Kubernetes

概述

1.持久化PV存储方式

数据库必须持久化数据,否则节点重启后数据就没了。PV和PVC可以对数据持久化,支持多种方式:
hostPath、NFS、RDB等等。数据要节点共享的,否则如果节点在其他机器上启动了,就无法访问到数据了。所以,生产环境一般采用这些方式:NFS挂载、用云服务器的RDB等。

本文为了简单,只部署一个MySQL节点,使用hostPath方式,不支持节点共享。

2.持久化PV分配方式

本文我直接手动预先创建。生产环境应该通过StorageClass采用Dynamic Provisioning。

3.数据库高可用

数据库一般要配置主从或者集群,实现高可用。一般使用StatefulSet部署,StatefulSet用于管理有状态应用的负载均衡,管理一组Pod的实现、扩容、缩容,并保证它们的顺序和唯一性。

StatefulSets维护的Pod有唯一的、持久的身份和稳定的主机名,不用管它们位于哪个节点上。即使StatefulSet中的Pod发生故障,存储卷与新Pod进行匹配也很容易。

1.创建PV和PVC存储

先创建目录:

mkdir -p /work/devops/k8s/app/mysql/mnt

创建名为 pv.yaml的文件,内容如下:

  1. apiVersion: v1
  2. kind: PersistentVolume
  3. metadata:
  4. name: mysql-pv
  5. namespace: db
  6. labels:
  7. type: db-pv
  8. spec:
  9. storageClassName: manual
  10. capacity:
  11. storage: 5Gi
  12. accessModes:
  13. - ReadWriteOnce
  14. hostPath:
  15. path: "/work/devops/k8s/app/mysql/mnt"
  16. ---
  17. apiVersion: v1
  18. kind: PersistentVolumeClaim
  19. metadata:
  20. name: mysql-pvc
  21. namespace: db
  22. spec:
  23. storageClassName: manual
  24. accessModes:
  25. - ReadWriteOnce
  26. resources:
  27. requests:
  28. storage: 5Gi

创建pv:

kubectl apply -f pv.yaml

查看PV

kubectl get pv mysql-pv

 结果:(创建成功)

查看PVC

kubectl get pvc -A

或者

get pvc mysql-pvc -n db

结果 (创建成功,绑定到了mysql-pv)

2.创建MySQL应用

1.创建命名空间

用于数据库相关应用。

创建名为db-namespace.yaml的文件,内容如下:

  1. # 创建命名空间
  2. apiVersion: v1
  3. kind: Namespace
  4. metadata:
  5. name: db
  6. labels:
  7. name: db

执行命令创建它:

kubectl apply -f db-namespace.yaml

2.创建MySQL应用

上边是文章的部分内容,为便于维护,全文已转移到此网址:K8S-安装MySQL8(单机) - 自学精灵

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/578889
推荐阅读
相关标签
  

闽ICP备14008679号