Overview
Running WordPress on Kubernetes gives you scalability, easy updates, and self-healing capabilities on your Breeze. This guide uses Helm to deploy WordPress with a MySQL backend.
Prerequisites
- K3s or MicroK8s running on your Breeze
- Helm installed
- A default StorageClass available
Deploy with Helm
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
helm install wordpress bitnami/wordpress \
--set wordpressUsername=admin \
--set wordpressPassword=YourSecurePassword \
--set wordpressEmail=you@yourdomain.com \
--set service.type=NodePort \
--set persistence.size=10Gi \
--set mariadb.primary.persistence.size=5Gi \
--set resources.requests.memory=256Mi \
--set resources.requests.cpu=200mCheck the Deployment
kubectl get pods -l app.kubernetes.io/name=wordpress
kubectl get svc wordpressAccess WordPress
export NODE_PORT=$(kubectl get svc wordpress -o jsonpath='{.spec.ports[?(@.name=="http")].nodePort}')
echo "http://your-breeze-ip:$NODE_PORT"Add Ingress with SSL
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: wordpress-ingress
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
spec:
ingressClassName: nginx
tls:
- hosts:
- blog.yourdomain.com
secretName: wordpress-tls
rules:
- host: blog.yourdomain.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: wordpress
port:
number: 80Upgrade WordPress
helm upgrade wordpress bitnami/wordpress -f values.yamlKubernetes ensures WordPress stays running and recovers automatically from failures on your Breeze.