[Workshops]K3s–mysql+nfs持久存储

[Workshops]K3s–mysql+nfs持久存储

💡 原文中文,约4100字,阅读约需10分钟。
📝

内容提要

项目使用k3s部署时,为了实现高可用性,选择使用NFS而非本地路径存储。文中介绍了两种NFS持久化存储方法:通过CSI驱动的StorageClass和直接使用NFS类型的PV。还涉及了如何安装nfs-common、配置StorageClass、声明PVC、配置ConfigMaps和Secrets,以及如何部署StatefulSet工作负载和服务端口暴露。最后,通过Workshop加深了对PVC/PV和StorageClass设计关系的理解。

🎯

关键要点

  • k3s部署项目需要持久化存储,选择使用NFS而非localpath存储以实现高可用性。
  • 使用群晖提供NFS服务,或自建NFS服务器均可。
  • 在节点上安装nfs-common以提供NFS客户端功能。
  • 有两种NFS持久化存储方法:使用CSI驱动的StorageClass和直接使用NFS类型的PV。
  • 使用StorageClass进行持久化管理可以减少配置和管理的复杂性。
  • 安装NFS的CSI驱动非常简单,可以通过yaml文件进行安装。
  • StorageClass的注册示例提供了NFS的配置参数。
  • PVC声明示例展示了如何请求持久卷。
  • 直接使用NFS PVC的方式需要手动管理NFS目录,整体性较差。
  • ConfigMaps用于Mysql配置管理,方便配置变更。
  • Secret文件用于存储Mysql的root密码。
  • StatefulSet工作负载部署Mysql时需要挂载secret、NFS PVC和configmap。
  • 注意securityContext配置以避免NFS读写权限问题。
  • 使用NodePort服务暴露Mysql端口以便连接和管理。
  • 通过Workshop理解PVC/PV和StorageClass之间的设计关系,StorageClass的抽象设计是其精妙之处。
🏷️

标签

➡️

继续阅读