# 在K8S上部署WordPress和MySQL

参考文档: Example: Deploying WordPress and MySQL with Persistent Volumes (opens new window)

本文描述了如何在K8S上部署一个WordPress和MySQL应用,本文中WordPress和MySQL都使用 PersistentVolume 和 PersistentVolumeClaim 存储数据。

PersistentVolume 是集群中可用的一片存储空间,通常由集群管理员手工提供,或者由 Kubernetes 使用 StorageClass 自动提供。

PersistentVolumeClaim 代表了用户(应用程序)对存储空间的需求,此需求可由 PersistentVolume 满足。

PersistentVolume 和 PersistentVolumeClaim 都是独立于 Pod 的生命周期,可用于在 Pod 重启、重新调度、甚至删除之后保存数据。

警告

本文中的例子不适合用于生产环境使用,因为例子中使用了一个 WordPress 实例和一个 MySQL 实例。可以考虑使用 WordPress Helm Chart (opens new window) 在生产环境中部署 WordPress。

# 主要步骤

  • 创建 PersistentVolumeClaim 和 PersistentVolume
  • 创建一个 kustomization.yaml,其中包括:
    • 一个 Secret generator
    • MySQL配置资源
    • WordPress配置资源
  • 执行 kubectl apply -k ./ 将 kustomization 目录应用到集群
  • 执行清理

# 前提条件

  • 您必须有一个K8S集群
  • 在执行 kubectl 命令的机器上任意位置创建一个空白目录用于本例子的执行。本文假设后续所有命令的当前目录都是此时创建的这个目录。

# 创建PersistentVolumeClaim和PersistentVolume

MySQL 和 WordPress 都需要一个 PersistentVolume 存储数据。他们的 PersistentVolumeClaim 将被在部署应用时创建。

# 创建kustomization.yaml

# 添加一个Secret generator

Secret 对象可以存储敏感信息,例如 password 或者 key。自 Kubernetes 1.14 开始,kubectl 支持使用 kustomization 文件管理对象。可以在 kustomization.yaml 文件中定义一个 generator 以创建 Secret 对象。

执行下面的命令,创建 kustomization.yaml 文件,该文件中包含一个 Secret generator。

您需要将 YOUR_PASSWORD 替换成您自己想要使用的密码

cat <<EOF >./kustomization.yaml
secretGenerator:
- name: mysql-pass
  literals:
  - password=YOUR_PASSWORD
EOF
1
2
3
4
5
6

# 为MySQL和WordPress添加配置信息

# 应用和验证

# 清理

更新时间: 2022-01-03 18:32:47