Kubernetes LEMP Stack is a distributed LEMP stack built on top of a Kubernetes cluster. It enables anyone to deploy multiple CMSs (currently WordPress) for any number of websites. We built it to be secure and very fast by default.
Currently this supports Google Compute Engine as a cloud provider. Other providers haven't been tested (things like
Ingress depend on your cloud provider).
There are already stable turn-key deployments for various CMSs via Kubernetes Helm Charts, but Kubernetes LEMP Stack is designed more or less in the traditional LEMP fashion where you get a bucket for all of your HTML at
/var/www/html and you may or may not use a CMS.
Actually, k8s LEMP Stack should be able to serve as your own personal web server farm! Use it as a backend to your own cloud hosting company! We also want extra customisation in terms of our web server and security hardening measures. In addition, future improvements aim to make this software scalable and highly-available.
redis. WordPress is contained in one
Deploymentcontroller along with an NGINX container with FastCGI caching and the NAXSI web application firewall.
Deploymentgets it's own
PersistentVolumeas well as
Secretobjects for storing sensitive information such as passwords for their DBs.
ConfigMaps are used to inject various
php.inisettings for PHP 7.3.
nginx-naxsiimage, which comes with:
StatefulSet. This is so anyone can start off with a full-fledged web farm and bring up any number of websites using one
mariadbinstance with a databse for each site. Future improvements will allow for HA and scalable clustered RDBMSs.
mariadbalso gets a
StatefulSetobjects in Kubernetes is currently a manual process, meaning we have to execute MySQL commands in the
mariadbpod to add new databases and users.
redisPHP extension and include a Redis
Ingresscontroller. See Kubernetes documentation regarding
Ingressin the official docs and on GitHub.
Ingressvia free Let's Encrypt certificates good for all domains on your cluster. Better yet, certificate issuance is handled automatically with the awesome cert-manager.
See Installation and Usage for instructions on getting up and running.
This project was inspired by the official Kubernetes WordPress + MySQL sample and builds on it with the various other official Docker images and Kubernetes applications mentioned previously.