Files
kuboard-press/learning/k8s-practice/lnmp/wordpress.md
huanqing.shao ebb5aae82d v1.0.5-beta.1
2019-11-17 22:53:28 +08:00

3.2 KiB
Raw Blame History

vssueId, layout, lessAds, description, meta
vssueId layout lessAds description meta
156 LearningLayout false Kubernetes教程_本文描述了如何在K8S上部署一个WordPress和MySQL应用_并将数据存储在PersistentVolume中
name content
keywords Kubernetes教程,K8S教程,K8S PHP,K8S培训,K8S教程

在K8S上部署WordPress和MySQL

参考文档: Example: Deploying WordPress and MySQL with Persistent Volumes

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

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

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

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

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

TOC

主要步骤

  • 创建 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

为MySQL和WordPress添加配置信息

应用和验证

清理