Terug naar blog

WordPress opzetten met MySQL op Kubernetes met Helm

WordPress opzetten met MySQL op Kubernetes met Helm

Kubernetes is nu de standaardmanier om applicaties te implementeren die schaalbaar zijn en een hoge beschikbaarheid hebben. Kubernetes stelt ontwikkelaars in staat om snel instances op te starten en af te breken wanneer dat nodig is om een soepele levering van inhoud te garanderen. Volg onze gedetailleerde gids om meer te leren over Kubernetes Kennismaken met Kubernetes.

Helm is een zeer populaire pakketbeheerder die wordt gebruikt om applicaties op Kubernetes te installeren. Helm is bedoeld om applicaties op Kubernetes-clusters te implementeren en te beheren en het proces gaandeweg te vereenvoudigen. Het biedt ook toegang tot kant-en-klare applicaties voor Kubernetes die zijn verpakt. Deze worden Charts genoemd. Bekend zijn met Kubernetes and Helm is een belangrijke aanvulling op het arsenaal van elke DevOps-specialist.

WordPress is een van de meest populaire Content Management Systemen (CMS). De combinatie met de MySQL-database resulteert in krachtige en zeer schaalbare webapplicaties. Door MySQL extern te houden, kunnen ook meer applicaties dezelfde database gebruiken voor hun use-cases.

In dit bericht installeren we WordPress op Kubernetes met behulp van de Helm-pakketbeheerder en verbinden we deze met een externe MySQL-server. Laten we beginnen!

Vereisten

De volgende software-installatie is vereist voor het succesvol voltooien van deze handleiding:

  1. Een operationeel Kubernetes-cluster. Volg deze handleiding voor de stappen om Kubernetes op Ubuntu te installeren.
  2. De Kubernetes command-line tool kubectl.
  3. Je moet een Helm-pakketbeheerder hebben geïnstalleerd. Als je Helm nog niet klaar hebt voor gebruik, kun je het downloaden van de officiële releasepagina op GitHub – helm/helm: The Kubernetes Package Manager. Om aan de slag te gaan met een stapsgewijze handleiding voor Helm kun je ook Inleiding tot Helm: Pakketbeheerder voor Kubernetes.
  4. Je moet MySQL hebben geïnstalleerd, samen met de root-gebruiker en het wachtwoord. Als MySQL nieuw voor je is, bekijk dan zeker Hoe MySQL op te zetten op een server en MySQL-basisprincipes en MySQL-gebruiker – Aanmaken en machtigingen verlenen.

Je moet ook een draaiend Kubernetes-cluster hebben dat verbonden is met MySQL. Voor gebruikers die meerdere clusters hebben, zorg ervoor dat je weet welk cluster momenteel verbonden is met MySQL. Om alle verschillende geconfigureerde clusters in je kubectl-configuratiebestand te zien, voer je het onderstaande commando uit:

Op je machine zou je de onderstaande uitvoer moeten krijgen:

Current

Name

Cluster

AuthInfo

Namespace

*

docker-desktop

docker-desktop

docker-desktop

Omdat we Docker Desktop gebruiken om Kubernetes uit te voeren, zie je docker-desktop staan. Je waarden kunnen anders zijn. Het sterretje (*) geeft aan welk cluster momenteel de standaardcontext is. Als je de huidige context moet wijzigen, voer dan uit:

Je bent nu klaar om de stappen van de handleiding te volgen.

MySQL instellen

Eerst maken we een speciale gebruiker aan in MySQL om verbinding te maken met WordPress. Dit is nodig omdat onze WordPress-installatie op een aparte server binnen het Kubernetes-cluster zal draaien. Log vanaf de MySQL-server in op MySQL met het volgende commando:

Er zal om het root-wachtwoord worden gevraagd. Voer het wachtwoord in en je bent verbonden.

  • Een speciale database maken voor WordPress

In MySQL kan er een willekeurig aantal databases zijn. Andere databases kunnen ook worden gedeeld tussen applicaties. WordPress wordt ook geleverd met een eigen database. Hier moeten we een speciale database maken voor WordPress. Om deze speciale database te maken, kun je de onderstaande instructie uitvoeren in de MySQL-bash:

  • Speciale gebruiker maken voor WordPress

Nadat de database is gemaakt, maken we een speciale gebruiker voor deze database. We zullen deze gebruiker gebruiken om verbinding te maken met onze nieuw gemaakte database:

Voer hierboven een sterk wachtwoord in. Hoewel we de gebruiker voor WordPress hebben aangemaakt, hebben we tot nu toe geen privileges toegevoegd. We moeten onze gebruikers privileges geven voor toegang en DML-bewerkingen (Data Manipulation). Om het simpel te houden, gaan we onze gebruikers van alle privileges voorzien. Wees voorzichtig, dit wordt niet aanbevolen in productie. Voer de onderstaande opdracht uit in de MySQL-shell:

Gebruik de volgende instructie om de interne MySQL-tabellen bij te werken die de toegangsrechten beheren:

Ten slotte kun je de MySQL-client sluiten door de onderstaande opdracht uit te voeren in de MySQL-shell:

  • Onze gebruiker en database verifiëren

Vervolgens moeten we verifiëren dat onze WordPress-gebruiker verbinding kan maken met de WordPress-database. Open hiervoor de MySQL-shell en voer de onderstaande opdracht uit:

Er zal om het wachtwoord worden gevraagd. Gebruik het wachtwoord dat je hierboven hebt ingevoerd voor een WordPress-gebruiker. Als je kunt inloggen, gefeliciteerd, je hebt met succes een MySQL-gebruiker aangemaakt. Verifieer vervolgens of deze gebruiker toegang heeft tot de WordPress-database. Voer de onderstaande opdracht uit in de MySQL-shell:
Als je hieronder je WordPress-database ziet, heeft je WordPress-gebruiker toegang tot de WordPress-database.

  • Externe verbindingen met onze MySQL-server toestaan

Tot nu toe hebben we een werkende WordPress-gebruiker en een WordPress-database. Onze MySQL-server en WordPress-database staan echter op aparte servers. Daarom moeten we ervoor zorgen dat WordPress verbinding kan maken met de MySQL-database. Hiervoor moeten we onze MySQL-configuratie bewerken om verbindingen van externe hosts toe te staan. Je moet het bestand mysqld.cnf bewerken. Op Linux-gebaseerde systemen bevindt dit bestand zich onder:

Open daarna het bestand met een teksteditor en zoek naar bind-address. Het bind-address specificeert het IP-adres waarnaar MySQL kan luisteren. Standaard luistert MySQL alleen op 127.0.0.1.. Om verbindingen van externe hosts toe te staan, wijzig je het bind-address naar 0.0.0.0.. Om deze wijzigingen door te voeren, start je de MySQL-server opnieuw op door de onderstaande opdracht uit te voeren:

Als je vervolgens wilt testen of je op afstand verbinding kunt maken, voer dan de volgende opdracht uit vanaf je lokale machine of ontwikkelserver:
Voeg mysql_server_ip toe aan de bovenstaande opdracht en voer deze uit. Als je zonder fouten verbinding kunt maken, kun je verder gaan.

WordPress installeren en upgraden

WordPress gebruikt standaard MariaDB als database. We do not want to use this database, since we want our MySQL database. Along with this change we also need to configure the admin user and password. We will do this by implementing command line parameters.

Maak eerst een nieuwe map aan genaamd my blog-settings. Maak in de map een nieuw bestand aan genaamd values.yaml-bestand. Voer de onderstaande inhoud in het values.yaml-bestand in:

Dit bestand spreekt voor zich. Merk op dat we hieronder MariaDB hebben uitgeschakeld. Nu onze configuratie klaar is, is het tijd om helm voor een WordPress-installatie. Voer de onderstaande opdracht uit in PowerShell:

Zodra het proces is voltooid, ziet u een service die is gemaakt met de naam myblog-wordpress. Het zal even duren voordat WordPress klaar is voor gebruik. Voer de onderstaande opdracht uit om de actieve services te vinden:
U krijgt een resultaat als dit:

NAME

TYPE

CLUSTER-IP

EXTERNAL-IP

PORT

myblog-wordpress

ClusterIP

10.96.0.1

<none>

80:31403/TCP,443:30879/TCP

Hier hebben we zeer nuttige informatie over de actieve services. We moeten letten op het externe IP-adres en de poort. Het externe IP-adres is het IP-adres waarop uw WordPress wordt aangeboden. Omdat we Docker Desktop gebruiken, krijgen we none onder external IP. U krijgt het IP-adres afhankelijk van uw systeem. Open uw webbrowser en voer dit IP-adres in. U ziet de WordPress-inlogpagina:

WordPress with MySQL 1

Dit zijn de inloggegevens die we in het bovenstaande YAML-bestand hebben opgegeven. Voer die inloggegevens in en u bent klaar om uw website op WordPress te configureren en inhoud op te slaan in onze nieuw gemaakte MySQL-database.

WordPress upgraden

WordPress brengt updates uit om beveiligingslekken te dichten en meer functies/bugfixes en meer uit te rollen. U kunt de WordPress-installatie upgraden door de onderstaande opdracht uit te voeren in PowerShell:

Als u vóór de upgrade de lijst met releases wilt zien, kunt u de onderstaande opdracht uitvoeren:

U krijgt de onderstaande uitvoer zoals:

Als u wilt zien of er een nieuwe versie van de WordPress-repository beschikbaar is, kunt u de onderstaande opdracht uitvoeren:

Wanneer u uw WordPress-release wilt upgraden naar de nieuwste WordPress-chart, voert u het volgende uit:

We moeten hetzelfde configuratiebestand gebruiken als voorheen, zodat de configuratiewaarden niet veranderen.

Een release terugdraaien

Elke keer dat u een upgrade uitvoert met Helm, maakt Helm een herstelpunt van de release. U kunt terugkeren als de dingen niet werken zoals verwacht. Releases kunnen worden vergeleken en teruggedraaid. Als het upgradeproces misgaat door een probleem, kunt u terugrollen naar de vorige release. Voer de onderstaande opdracht uit om terug te rollen:

Voer in ons geval de onderstaande opdracht uit om terug te rollen naar de vorige release:

Om nu te controleren of het terugdraaiproces succesvol is voltooid, kunt u de opdracht helm list uitvoeren.

Conclusie

In deze uitgebreide handleiding hebben we u laten zien hoe u MySQL instelt en WordPress installeert met deze externe MySQL. We hebben WordPress op Kubernetes geïnstalleerd met behulp van de Helm-pakketbeheerder en hebben ook upgrades uitgevoerd in WordPress.

Nu u op de hoogte bent van de installatie op Kubernetes met behulp van Helm, hoeft u hier niet te stoppen. Neem gerust een kijkje op de CloudSigma-blog om meer te leren over Kubernetes:

Veel plezier met computeren!

author

Hark Labs

Auteur · CloudSigma

Preslav Dobrev is een creatief ontwerper bij CloudSigma, met de nadruk op een consistente bedrijfsidentiteit door middel van traditionele en innovatieve marketingkanalen. Hij is bedreven in het samenvoegen van artistieke visie met strategische marketing om impactvolle merkverhalen te creëren.

Reacties

Nog geen reacties. Wees de eerste.