Bitnami charts is the easiest way to get started with open-source applications on Kubernetes. It provides you a secure, up-to-date and easy-to-use catalog with 130+ applications.
Most users install the Bitnami charts with the default values, which is a great way to start with your favorite app on K8s using a simple structure. That said, these charts can offer you much more. They provide support for different topologies, configurations, integrations, customizations, etc.
This repository is a guide attempts to unleash the potential of the Bitnami catalog. To do so, it walks through the steps required to deploy a WordPress site on K8s enabling many of the features you will expect for a production environment such as:
- High Availability (both on WordPress and the database).
- Automatic horizontal scalability.
- Caching database queries and objects.
- Monitoring.
- Log collection & analysis.
- DNS propagation.
- TLS certificates management and issuance.
$ git clone https://github.com/juan131/wordpress-for-k8s.git && cd wordpress-for-k8s
$ ./setup-wordpress-for-k8s.sh
- Kubernetes 1.12+
- Helm 3.1.0
- Dynamic Volume Provisioning support in the underlying infrastructure
- ReadWriteMany volumes for deployment scaling
Note: tested in a 3-node GKE clusters (using "n1-standard-4" machines). Kubernetes version: 1.17.17
Follow the instruction under the "Before you being" section of the README.md file below:
Note: for GKE, the cluster must be created with the required scopes to manage CloudDNS in order to use External DNS.
This tutorial provides a script (setup-wordpress-for-k8s.sh) that you can use to deploy all the required solutions in your Kubernetes cluster in a orchestrated way.
As an alternative, you can manually install each of the required charts. The tutorial makes use of the following Helm charts:
- Bitnami WordPress.
- Bitnami Memcached.
- Bitnami MariaDB Galera.
- Bitnami kube-prometheus.
- Bitnami Grafana Operator.
- Bitnami Fluentd.
- Bitnami Elasticsearch.
- Bitnami Kibana.
- Bitnami Nginx Ingress Controller.
- Bitnami External DNS.
- Cert Manager.
You can find the corresponding values.yaml to deploy each of these charts under the values/ directory. Those parameters including the comment # To be customized
are meant to be adapted with your own credentials / preferences.
Using this tutorial, the following setup will be deployed in your Kubernetes cluster:
You can find detailed information about how WordPress interact with the rest of the agents on this setup under the docs directory.