k8s lemp

其他类别 2025-08-21

kubernetes lemp堆栈

Kubernetes LEMP堆栈是建立在Kubernetes群集顶部的分布式LEMP堆栈。它使任何人都可以为任意数量的网站部署多个CMS(当前WordPress)。默认情况下,我们构建了它的安全和非常快。

目前,这支持Google Compute Engine作为云提供商。其他提供商尚未经过测试(诸如PersistentVolumeIngress之类的东西取决于您的云提供商)。

已经通过Kubernetes Helm图表为各种CMS提供了稳定的交钥匙部署,但是Kubernetes LEMP堆栈或多或少地以传统的LEMP方式设计,您可以在/var/www/html中获得所有HTML的存储桶,并且您可能会或您可能不会使用CMS。

实际上, k8s lemp堆栈应该能够充当您自己的个人网络服务器农场!将其用作您自己的云托管公司的后端!我们还希望根据我们的Web服务器和安全性硬化措施进行额外的自定义。此外,未来的改进旨在使该软件可扩展且高度可用。

它如何工作

  • WordPress

    • 每个WordPress CMS都基于WordPress:PHP7.3-FPM图像,具有额外的PHP扩展名,例如redis 。 WordPress和一个具有FASTCGI缓存和NAXSI Web应用程序防火墙的NGINX容器一起包含在一个Deployment控制器中。
    • 每个WordPress Deployment都会获得其自己的PersistentVolume以及用于存储敏感信息的Secret对象,例如其DBS的密码。
    • ConfigMap S用于为PHP 7.3注入各种php.ini设置。
  • nginx

    • NGINX容器具有多个方便的配置用于多站点和缓存,所有配置都可以轻松地使用ConfigMap对象部署。
    • 我们使用nginx-naxsi映像构建nginx,其中包括:
      • NBS系统的NAXSI模块。 NAXSI是指NGINX抗XSS和SQL注入。
      • NGINX和NAXSI Web应用程序防火墙的方便配置也通过ConfigMap s包括在内。
  • Mariadb

    • 最初,WordPress pods都与一个mariadb StatefulSet满足。这样一来,任何人都可以从一个成熟的网络农场开始,并使用一个mariadb实例带有每个网站的数据库。未来的改进将允许HA和可扩展的RDBMS。
    • mariadb还获得了一个PersistentVolumeSecret对象。
    • 在Kubernetes中更新StatefulSet对象是当前的手动过程,这意味着我们必须在mariadb Pod中执行MySQL命令以添加新的数据库和用户。
  • Redis

    • 为了减少DB的命中,我们将使用redis PHP扩展名构建WP图像,并包括REDIS Deployment
    • 必须通过安装和配置WP REDIS对象缓存插件来初始化新的WP站点时配置WP以使用REDIS。
  • 入口/Kube乐高

    • 网站通过nginx Ingress控制器在外部到达。请参阅有关官方文档和Github中Ingress的Kubernetes文档。
    • 所有TLS均通过Free在Ingress终止,让我们加密证书对您的群集上的所有域都有益。更好的是,很棒的证书经理会自动处理证书。
  • 有关起床和运行的说明,请参见安装和用法

托多

  • 添加图表详细详细介绍集群的一般结构
  • 高可用性
    • CEPH分布式存储
    • (可选)HA mysql通过分碎,聚类等。
    • 将共享和分布式存储添加到WordPress部署中,以便可以复制它们
  • PHP插座
  • 新注释kubernetes.io/ingress.global-static-ip-name: "wpclust-ingress"
  • 迁移到Certmanager(带有舵机安装)

安装和用法

访问usage.md。

致谢

该项目的灵感来自官方的Kubernetes WordPress + MySQL样本,并以前面提到的其他官方Docker Images和Kubernetes应用程序为基础。

下载源码

通过命令行克隆项目:

git clone https://github.com/daxio/k8s-lemp.git