kubernetes lemp堆栈
Kubernetes LEMP堆栈是建立在Kubernetes群集顶部的分布式LEMP堆栈。它使任何人都可以为任意数量的网站部署多个CMS(当前WordPress)。默认情况下,我们构建了它的安全和非常快。
目前,这支持Google Compute Engine作为云提供商。其他提供商尚未经过测试(诸如PersistentVolume和Ingress之类的东西取决于您的云提供商)。
已经通过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的密码。 -
ConfigMapS用于为PHP 7.3注入各种php.ini设置。
- 每个WordPress CMS都基于WordPress:PHP7.3-FPM图像,具有额外的PHP扩展名,例如
-
nginx
- NGINX容器具有多个方便的配置用于多站点和缓存,所有配置都可以轻松地使用
ConfigMap对象部署。 - 我们使用
nginx-naxsi映像构建nginx,其中包括:- NBS系统的NAXSI模块。 NAXSI是指NGINX抗XSS和SQL注入。
- NGINX和NAXSI Web应用程序防火墙的方便配置也通过
ConfigMaps包括在内。
- NGINX容器具有多个方便的配置用于多站点和缓存,所有配置都可以轻松地使用
-
Mariadb
- 最初,WordPress pods都与一个
mariadbStatefulSet满足。这样一来,任何人都可以从一个成熟的网络农场开始,并使用一个mariadb实例带有每个网站的数据库。未来的改进将允许HA和可扩展的RDBMS。 -
mariadb还获得了一个PersistentVolume和Secret对象。 - 在Kubernetes中更新
StatefulSet对象是当前的手动过程,这意味着我们必须在mariadbPod中执行MySQL命令以添加新的数据库和用户。
- 最初,WordPress pods都与一个
-
Redis
- 为了减少DB的命中,我们将使用
redisPHP扩展名构建WP图像,并包括REDISDeployment。 - 必须通过安装和配置WP REDIS对象缓存插件来初始化新的WP站点时配置WP以使用REDIS。
- 为了减少DB的命中,我们将使用
-
入口/Kube乐高
- 网站通过
nginxIngress控制器在外部到达。请参阅有关官方文档和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应用程序为基础。
