/gke-wordpress

Google Kubernetes Engine WordPress with Google Cloud SQL in Helm Charts

Primary LanguageHTMLGNU General Public License v3.0GPL-3.0

No longer maintained -

GKE WordPress with Google Cloud SQL

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.

Donate

GKE WordPress supports/requires:

Installation and Usage

See Installation and Usage for instructions on getting up and running. Visit USAGE.md.

How It Works

  • 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 own PersistentVolume as well as Secret objects for storing sensitive information such as passwords for their DBs.
    • ConfigMaps are used to inject various php.ini settings for PHP 7.2.
  • 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 ConfigMaps.
    • The NGINX container has multiple handy configurations for multi-site and caching, all easily deployed using ConfigMap objects.
  • 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 Redis Deployment. WP must be configured to use Redis upon initializing a new WP site by installing and configuring the WP Redis Object Cache plugin.
  • Ingress/Kube Lego

    • Websites are reached externally via an nginx-ingress controller. See Kubernetes documentation regarding Ingress 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 the kube-lego.

GKE WordPress

Acknowledgements

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.

Donate

Donate