No longer maintained -
Deploy WordPress sites to Google Kubernetes Engine (GKE) clusters via Helm charts. Use as your own personal WordPress farm or as a backend to your own cloud hosting company.
GKE WordPress supports/requires:
- Google Kubernetes Engine
- Google Compute Engine
- Google Cloud SQL
- Helm, the Kubernetes Package Manager
See Installation and Usage for instructions on getting up and running. Visit USAGE.md.
-
WordPress
- Each WordPress application server image is based on the wordpress:php7.2-fpm docker image with
redis
extension. - Each WordPress
Deployment
gets it's ownPersistentVolume
as well asSecret
objects for storing sensitive information such as passwords for their DBs. ConfigMap
s are used to inject variousphp.ini
settings for PHP 7.2.
- Each WordPress application server image is based on the wordpress:php7.2-fpm docker image with
-
NGINX
- Each NGINX web server image is based on the official
Nginx
docker image, and comes with: - NBS System's NAXSI module. NAXSI means NGINX Anti-XSS & SQL Injection.
- Handy configurations for NGINX and the NAXSI web application firewall are also included via
ConfigMap
s. - The NGINX container has multiple handy configurations for multi-site and caching, all easily deployed using
ConfigMap
objects.
- Each NGINX web server image is based on the official
-
Cloud SQL
- The WordPress sites all interface with one Google Cloud SQL instance, so anyone can start off with a full-fledged web farm and bring up any number of websites using a single Cloud SQL server instance and a separate database for each site.
-
Redis
- To reduce DB hits, the WP image is built with a
redis
PHP extension that connects to a cluster-wide RedisDeployment
. WP must be configured to use Redis upon initializing a new WP site by installing and configuring the WP Redis Object Cache plugin.
- To reduce DB hits, the WP image is built with a
-
Ingress/Kube Lego
- Websites are reached externally via an
nginx-ingress
controller. See Kubernetes documentation regardingIngress
in the official docs and on GitHub. - TLS/SSL is terminated at
nginx-ingress
via free Let's Encrypt certificates, good for all domains on your cluster. Additionally, certificate issuance is handled automatically with thekube-lego
.
- Websites are reached externally via an
This project was inspired by and based on daxio/k8s-lemp and builds on it with the various other official Docker images and Kubernetes applications mentioned previously.