WordPress

Een statische site is leuk, maar we leven niet meer in 1992... Tijd voor de volgende stap: een wordpress installatie! In deze handleiding behandelen we de zaken van meneer Bond; secrets en services. Dit doen we aan de hand van de volgende deployment:

Zoals je kunt zien bevat deze deployment 4 objecten:

  • Twee services
  • Één persistent volume claim (pvc)
  • Één deployment van één Wordpress container

Secrets

Omdat Kubernetes gebaseerd is op configuratie bestanden, kun je makkelijk versies bijhouden. Nou is het geen goed idee om credentials op te slaan in je versiebeheersysteem, bijvoorbeeld git. Hiervoor heeft Kubernetes de mogelijkheid om secrets aan te maken. Dit doe je alsvolgt

kubectl create secret generic db-secret --from-literal=username=$DB_USERNAME --from-literal=password=$DB_PASSWORD --from-literal=database=$DB_NAME

In de bovenstaande regel wordt het secret db-secret aangemaakt met een veld username, password en database. Deze waarden vind je terug in de yaml bij de deployment waar de container wordt gedefineerd. De waarden zullen in de conatiner als environment variabelen beschikbaar zijn. Pas als dit secret is aangemaakt verbind Wordpress naar de MySQL server.

Services

De eerste twee objecten die aangemaakt worden in het yaml-bestand zijn allebei services.

De eerste is een service van type: ExternalName, dit is eigenlijk vergelijkbaar met een CNAME-record van DNS; een alias. In dit voorbeeld hebben we een alias gemaakt naar onze DataBase-as-a-Service; DBaaS.

De tweede service heeft type: LoadBalancer, services met dit type krijgen een extern IP-adres en zijn dus extern bereikbaar. Voer kubectl get services uit om deze informatie weer te geven.

Wil je eerst je site inrichten? Gebruik dan het (standaard) type: ClusterIP, zo kun je in combinatie met kubectl port-forward deployment/wordpress 80:80 lokaal toegang verkrijgen.
Om de LoadBalancer-service te verwijderen gebruik je: kubectl delete service/wordpress daarna kun je kubectl expose deployment/wordpress --port=80 --type=ClusterIP uitvoeren om dit voor elkaar te krijgen.

Zo! Met die Wordpress installatie achter de rug is het bijna tijd voor een martini! Alleen alles gaat nog over http, en dat is ook niet meer echt van deze tijd. Klik nog even de volgende handleiding door om je Let's Encrypt te activeren en dan pak je ook meteen Ingress mee!

Routing, Ingress en Let's Encrypt