wordpress - 使用kubernetes部署wordpress应用程序时,在不停机的情况下部署新版本的图像

标签 wordpress kubernetes

我是Kubernetes的新手,并且按照本教程学习了如何使用k8s Deploying WordPress部署WordPress应用程序。

假设我有3个使用WordPress:4.8-apache图像的Pod,并且我有一个共享卷,该共享卷通过WordPress 4.8代码安装到每个Pod。
并说我想在不停机的情况下将WordPress更新到4.9。
因此,必须要及时处理一些Pod,这些Pod具有WordPress 4.8的代码,而有些Pod具有WordPress 4.9的代码,但是所有Pod都使用相同的Volume,这怎么可能?
新的Pod是否会覆盖共享文件夹中的代码?

最佳答案

可能会发生这种情况。从这个意义上讲,在我看来,这不是遵循不变性原则(https://engineering.bitnami.com/articles/why-your-next-web-service-should-be-immutable.html)部署WordPress的正确方法。为了避免此类问题,我的建议是:

  • 使用环境变量代替持久化wp-config.php配置
  • 将所有 Assets 存储在S3之类的服务中。有用于此的插件(https://deliciousbrains.com/wp-offload-s3/)。
  • 如果要使用插件,请构建将所有插件 bundle 在一起的镜像(这可能会有些困难,但这可以使您免于 pod 之间出现不一致的痛苦)。

  • 如果较新的版本暗含数据库更改,则可能会出现问题。在这种情况下,我会在Pod定义中添加某种准备情况检查,以便在旧版本失败的情况下将其从服务中删除,并且只有较新的WordPress Pod可用。在这种情况下,在升级之前进行数据库备份也是一个不错的选择。

    关于wordpress - 使用kubernetes部署wordpress应用程序时,在不停机的情况下部署新版本的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49764640/

    相关文章:

    wordpress - 保护我的视频-另存为已启用

    kubernetes - 如何删除在 Argo 命名空间中启动的 Argo 事件?

    kubernetes - 在Kubernetes configMaps中使用敏感的环境变量

    go - 如何将 Kubernetes 自定义资源规范与 GO Controller 中的预期规范进行比较?

    kubernetes - 具有共享环境变量的 K8S 部署

    kubernetes - Kubernetes中的升级和故障域

    wordpress - Wordpress-加密导入用户的密码

    php - WooCommerce - 确定当前单个产品页面的产品类别

    php - Woocommerce 中基于自定义字段的动态价格计算

    php - 如果购物车包含特定类别 (WooCommerce),则阻止添加到购物车