Zpět na blog

Nastavení WordPressu s MySQL na Kubernetes pomocí Helm

Nastavení WordPressu s MySQL na Kubernetes pomocí Helm

Kubernetes je dnes standardním způsobem nasazování aplikací, které jsou škálovatelné a mají vysokou dostupnost. Kubernetes umožňuje vývojářům rychle spouštět a ukončovat instance podle potřeby, aby bylo zajištěno plynulé doručování obsahu. Chcete-li se o Kubernetes dozvědět více, postupujte podle našeho podrobného průvodce Seznámení s Kubernetes.

Helm je velmi populární správce balíčků, který se používá k instalaci aplikací v Kubernetes. Cílem Helmu je nasazovat a spravovat aplikace v clusterech Kubernetes a zjednodušit celý proces. Poskytuje také přístup k hotovým zabaleným aplikacím pro Kubernetes. Ty se nazývají Charts. Znalost Kubernetes a Helmu je důležitým doplňkem arzenálu každého specialisty na DevOps.

WordPress je jedním z nejpopulárnějších systémů pro správu obsahu (CMS). Jeho kombinace s MySQL databází vede k vysoce výkonným a vysoce škálovatelným webovým aplikacím. Ponechání MySQL jako externí databáze také umožní více aplikacím využívat stejnou databázi pro jejich účely.

V tomto příspěvku nainstalujeme WordPress na Kubernetes pomocí správce balíčků Helm a připojíme jej k externímu serveru MySQL. Začněme!

Požadavky

Pro úspěšné dokončení tohoto návodu bude vyžadováno následující softwarové nastavení:

  1. Spuštěný a funkční cluster Kubernetes. Postupujte podle tohoto návodu pro kroky instalace Kubernetes na Ubuntu.
  2. Nástroj příkazového řádku pro Kubernetes kubectl.
  3. Budete potřebovat nainstalovaného správce balíčků Helm. Pokud nemáte Helm připraven k použití, můžete si jej stáhnout z jeho oficiální stránky vydání na GitHub – helm/helm: The Kubernetes Package Manager. Chcete-li začít s podrobným průvodcem pro Helm, můžete si také přečíst Úvod do Helm: Správce balíčků pro Kubernetes.
  4. Budete muset mít nainstalované MySQL spolu s uživatelem root a heslem. Pokud jste v MySQL nováčky, určitě se podívejte na Jak nastavit MySQL na serveru a základy MySQL a Uživatel MySQL – vytvoření a udělení oprávnění.

Musíte mít také spuštěný cluster Kubernetes připojený k MySQL. Uživatelé, kteří mají více clusterů, se musí ujistit, že znají aktuální cluster připojený k MySQL. Chcete-li zobrazit všechny různé clustery nakonfigurované ve vašem kubectl konfiguračním souboru, spusťte níže uvedený příkaz:

Na svém počítači byste měli získat níže uvedený výstup:

Current

Name

Cluster

AuthInfo

Namespace

*

docker-desktop

docker-desktop

docker-desktop

Vzhledem k tomu, že k provozu Kubernetes používáme Docker Desktop, uvidíte zobrazeno docker-desktop. Vaše hodnoty se mohou lišit. Znak hvězdičky (*) označuje, který cluster je aktuálně výchozím kontextem. V případě, že potřebujete změnit aktuální kontext, spusťte:

Nyní jste připraveni postupovat podle kroků v návodu.

Nastavení MySQL

Nejprve v MySQL vytvoříme vyhrazeného uživatele pro připojení k WordPressu. To je nutné, protože naše instalace WordPressu bude běžet na samostatném serveru uvnitř clusteru Kubernetes. Ze serveru MySQL se přihlaste do MySQL pomocí následujícího příkazu:

Budete požádáni o heslo uživatele root. Zadejte heslo a budete připojeni.

  • Vytvoření vyhrazené databáze pro WordPress

V MySQL může být libovolný počet databází. Další databáze mohou být také sdíleny mezi aplikacemi. WordPress má také svou vlastní databázi. Zde musíme vytvořit vyhrazenou databázi pro WordPress. Chcete-li vytvořit tuto vyhrazenou databázi, můžete v příkazovém řádku MySQL spustit následující příkaz:

  • Vytvoření vyhrazeného uživatele pro WordPress

Po vytvoření databáze vytvoříme pro tuto databázi vyhrazeného uživatele. Tohoto uživatele použijeme k připojení k naší nově vytvořené databázi:

Zadejte výše silné heslo. Přestože jsme vytvořili uživatele pro WordPress, zatím jsme mu nepřidali žádná oprávnění. Musíme našim uživatelům poskytnout oprávnění pro přístup a operace DML (Data Manipulation). Abychom to zjednodušili, poskytneme našim uživatelům všechna oprávnění. Buďte opatrní, toto se v produkčním prostředí nedoporučuje. Spusťte níže uvedený příkaz v MySQL shellu:

Chcete-li aktualizovat interní tabulky MySQL, které spravují přístupová oprávnění, použijte následující příkaz:

Nakonec můžete klienta MySQL zavřít spuštěním níže uvedeného příkazu v MySQL shellu:

  • Ověření našeho uživatele a databáze

Dále musíme ověřit, že se náš WordPress uživatel může připojit k databázi WordPress. Chcete-li to provést, otevřete MySQL shell a spusťte níže uvedený příkaz:

Budete vyzváni k zadání hesla. Použijte heslo, které jste zadali výše pro uživatele WordPress. Pokud se můžete přihlásit, gratulujeme, úspěšně jste vytvořili uživatele MySQL. Dále ověřte, zda má tento uživatel přístup k databázi WordPress. Spusťte níže uvedený příkaz v MySQL shellu:
Pokud níže vidíte svou databázi WordPress, váš uživatel WordPress má k databázi WordPress přístup.

  • Povolení vzdálených připojení k našemu MySQL serveru

Až dosud máme funkčního uživatele WordPress a databázi WordPress. Náš MySQL server a databáze WordPress jsou však na samostatných serverech. Proto musíme zajistit, aby se WordPress mohl k databázi MySQL připojit. K tomu musíme upravit konfiguraci MySQL tak, aby povolovala připojení přicházející ze vzdálených hostitelů. Budete muset upravit soubor mysqld.cnf soubor. Na systémech založených na Linuxu se tento soubor nachází pod:

Poté soubor otevřete v libovolném textovém editoru a vyhledejte bind-address. Parametr bind-address určuje IP adresu, na které může MySQL naslouchat. Ve výchozím nastavení MySQL naslouchá pouze na 127.0.0.1.. Chcete-li povolit připojení z externích hostitelů, změňte bind-address na 0.0.0.0.. Aby se tyto změny projevily, restartujte MySQL server spuštěním níže uvedeného příkazu:

Dále, pokud chcete otestovat, zda se můžete připojit vzdáleně, spusťte ze svého lokálního počítače nebo vývojového serveru následující příkaz:
Přidejte mysql_server_ip do výše uvedeného příkazu a spusťte jej. Pokud se můžete připojit bez chyb, můžete pokračovat.

Instalace a aktualizace WordPressu

WordPress ve výchozím nastavení používá jako svou databázi MariaDB. Tuto databázi používat nechceme, protože chceme naši databázi MySQL. Spolu s touto změnou musíme také nakonfigurovat administrátorského uživatele a heslo. Provedeme to implementací parametrů příkazového řádku.

Nejprve vytvořte novou složku s názvem my blog-settings. Uvnitř složky vytvořte nový soubor s názvem values.yaml. Do souboru values.yaml zadejte následující obsah:

Tento soubor je samovysvětlující. Všimněte si, že níže jsme zakázali MariaDB. Nyní, když je naše konfigurace připravena, je čas spustit helm pro instalaci WordPressu. Spusťte následující příkaz v PowerShellu:

Po dokončení procesu uvidíte vytvořenou službu s názvem myblog-wordpress. Bude to chvíli trvat, než bude WordPress připraven k použití. Chcete-li zjistit běžící služby, spusťte následující příkaz:
Dostanete výsledek jako tento:

NAME

TYPE

CLUSTER-IP

EXTERNAL-IP

PORT

myblog-wordpress

ClusterIP

10.96.0.1

<none>

80:31403/TCP,443:30879/TCP

Zde máme velmi užitečné informace o běžících službách. Musíme věnovat pozornost externí IP adrese a portu. Externí IP je IP adresa, na které běží váš WordPress. Vzhledem k tomu, že používáme Docker Desktop, u externí IP se nám zobrazuje none. IP adresu získáte v závislosti na vašem systému. Otevřete webový prohlížeč a zadejte tuto IP adresu. Uvidíte přihlašovací stránku WordPressu:

WordPress with MySQL 1

Toto jsou přihlašovací údaje, které jsme poskytli ve výše uvedeném souboru YAML . Zadejte tyto údaje a budete připraveni nakonfigurovat svůj web na WordPressu a ukládat obsah do naší nově vytvořené databáze MySQL.

Aktualizace WordPressu

WordPress vydává aktualizace, které opravují bezpečnostní zranitelnosti a přinášejí další funkce/opravy chyb a další. Instalaci WordPressu můžete aktualizovat spuštěním následujícího příkazu v PowerShellu:

Před aktualizací, pokud chcete vidět seznam vydání, můžete spustit následující příkaz:

Získáte následující výstup jako:

Pokud chcete zjistit, zda je k dispozici nová verze repozitáře WordPressu, můžete spustit následující příkaz:

Kdykoli budete chtít upgradovat své vydání WordPressu na nejnovější chart WordPressu, měli byste spustit:

Musíme použít stejný konfigurační soubor jako předtím, aby se hodnoty konfigurace nezměnily.

Vrácení vydání zpět

Při každém upgradu pomocí Helmu vytvoří Helm kontrolní bod (checkpoint) vydání. Pokud věci nefungují podle očekávání, můžete se vrátit zpět. Vydání lze porovnávat a vracet zpět. Pokud se proces upgradu z jakéhokoli důvodu nezdaří, můžete se vrátit k předchozímu vydání. Pro vrácení zpět spusťte následující příkaz:

V našem případě spusťte následující příkaz pro vrácení k předchozímu vydání:

Chcete-li nyní ověřit, že proces vrácení proběhl úspěšně, můžete spustit příkaz helm list.

Závěr

V tomto komplexním návodu jsme vám ukázali, jak nastavit MySQL a nainstalovat WordPress s touto externí MySQL. Nainstalovali jsme WordPress na Kubernetes pomocí správce balíčků Helm a také jsme provedli aktualizace ve WordPressu.

Nyní, když jste se seznámili s instalací na Kubernetes pomocí Helmu, zde nekončete. Neváhejte si projít blog CloudSigma, abyste se dozvěděli více o Kubernetes:

Příjemnou práci!

author

Hark Labs

Autor · CloudSigma

Preslav Dobrev je kreativní designér ve společnosti CloudSigma, který se zaměřuje na konzistentní firemní identitu prostřednictvím tradičních i inovativních marketingových kanálů. Je zdatný v propojování umělecké vize se strategickým marketingem za účelem vytváření působivých příběhů značky.

Komentáře

Zatím žádné komentáře. Buďte první.