在前文k8s部署有状态应用中,简单介绍了StatefulSet的使用。
本教程将展示如何使用 Minikube 部署 WordPress 站点和 MySQL 数据库。这两个应用程序都使用 PersistentVolumes 和 PersistentVolumeClaims 来存储数据。
PersistentVolume (PV) 是集群中的一块存储,由管理员手动配置,或者由 Kubernetes 使用 StorageClass动态配置。PersistentVolumeClaim (PVC )是用户提出的存储请求,可以通过 PV 来满足。PersistentVolumes 和 PersistentVolumeClaims 独立于 Pod 生命周期,并通过重新启动、重新调度甚至删除 Pod 来保留数据。
本文目标
- 创建pv和pvc
- 创建一个包含Secret generator 和mysql与wordpress配置的yaml文件
- 部署
- 清除
创建kustomization
Secret是存储密码或密钥等敏感数据的对象。从 1.14 开始,kubectl支持使用 kustomization 文件管理 Kubernetes 对象。
执行以下命令将Secret添加到kustomization.yaml。记得更换password
cat <<EOF >./kustomization.yaml
secretGenerator:
- name: mysql-pass
literals:
- password=YOUR_PASSWORD
EOF
创建MySQL yaml
vim mysql-deployment.yaml
MySQL 容器将 PersistentVolume 挂载在 /var/lib/mysql 处。环境MYSQL_ROOT_PASSWORD 变量设置来自 Secret 的数据库密码。