在Kubernetes上使用Wordpress CLI映像

kmo*_*sov 5 wordpress kubernetes wp-cli

我们有一个基于官方wordpress图像的自定义docker图像,其中包含我们正在开发的自定义主题。我们使用Gitlab CI对该项目提供了CI / CD,并在裸机Kubernetes Cluster v1.6上部署了分支,以供审核。效果很好,但是我们正在尝试通过在部署新实例时自动化所需的手动操作来增强流程:

  • 安装Wordpress
    • 设置管理员凭证
    • 设置网站名称和网址
  • 激活主题
  • 激活插件
  • 汇入资料
  • 等等

wp-cli具有所需的所有命令。但是如何与容器和K8S一起使用呢?我们知道有两种选择:

  • 在基于WordPress的映像中安装该工具。
  • 使用仅包含wp-cli并与主容器通信的第二个容器。

有预装了wp-cli的WordPress图像(例如tutum-docker-wordpress),但是我们认为这不是正确的方法。在某些时候,我们希望每天使用带有cli映像的CronJob资源来导出数据,并且我们试图使该过程尽可能通用,并且我们希望保留官方映像,因此首选第二种方法。根据我们的研究,为了实施第二种选择,我们需要实现两件事:

  • 从CLI容器访问WordPress安装文件。
  • 成功执行后请勿重试。

我们研究了几种选择,但没有完全成功:

  • 同一容器中的第二个容器-看起来可以使用EmptyDir在两个容器之间共享文件,但是即使容器成功,它也会重新启动。
  • InitContainer-这听起来很诱人,因为数据库迁移是通过这种方式完成的。但是,除非使用自定义图像,否则似乎无法获取文件。
  • 作业 -专为一次性任务而设计,但是似乎无法访问容器中容器的文件。

当您在Kubernetes上部署Wordpress的审阅部署时,这似乎是一个非常常见的功能,并且应该已经有人做到了。但是我们找不到有关此用例的任何特定信息。

请根据您的建议提供最佳实现方式的最佳方法是什么?

小智 0

您可以使用基于 NFS 的文件系统并将 WordPress 内容装载到任何类型的工作负载中。

如果您需要一些东西来帮助您入门,请查看https://matthewdavis.io/highly-available-wordpress-on-kubernetes/