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í:
- Spuštěný a funkční cluster Kubernetes. Postupujte podle tohoto návodu pro kroky instalace Kubernetes na Ubuntu.
- Nástroj příkazového řádku pro Kubernetes
kubectl. - 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.
- 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:
|
1 |
kubectl config get-contexts |
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:
|
1 |
kubectl config use-context context-name |
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:
|
1 |
mysql -u root -p |
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:
|
1 |
CREATE DATABASE wordpress |
-
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:
|
1 |
CREATE USER wordpress_user IDENTIFIED BY '<password>'; |
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:
|
1 |
GRANT ALL PRIVILEGES ON wordpress.* TO wordpress_user@'%'; |
Chcete-li aktualizovat interní tabulky MySQL, které spravují přístupová oprávnění, použijte následující příkaz:
|
1 |
FLUSH PRIVILEGES; |
Nakonec můžete klienta MySQL zavřít spuštěním níže uvedeného příkazu v MySQL shellu:
|
1 |
Exit; |
-
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:
|
1 |
mysql -u <wordpress_user> -p |
|
1 |
show databases |
-
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:
|
1 |
/etc/mysql/mysql.conf.d/mysqld.cnf |
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:
|
1 |
systemctl restart mysql |
|
1 |
mysql -h <mysql_server_ip> -u wordpress_user -p |
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:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
## Nastavení WordPressu wordpressUsername: my_user wordpressPassword: some_strong_password wordpressEmail: sample@example.com wordpressFirstName: Uživatel wordpressLastName: Příjmení wordpressBlogName: Můj Blog! ## Nastavení databáze externalDatabase: host: <mysql_server_ip> user: wordpress_user password: password database: wordpress ## Povolit Maria DB mariadb: enabled: false |
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:
|
1 |
helm install myblog -f values.yaml stable/wordpress |
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:|
1 |
kubectl get services |
|
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:
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:
|
1 |
helm upgrade |
Před aktualizací, pokud chcete vidět seznam vydání, můžete spustit následující příkaz:
|
1 |
helm list |
Získáte následující výstup jako:
|
1 2 3 |
Vydržte chvíli zatímco stahujeme nejnovější z vašich repozitářů chartůchart repozitářů… …Přeskočit lokální chart repozitář …Úspěšně získal aktualizaci z repozitáře the “stable” chart repozitář |
Pokud chcete zjistit, zda je k dispozici nová verze repozitáře WordPressu, můžete spustit následující příkaz:
|
1 |
helm inspect chart stable/wordpress |
Kdykoli budete chtít upgradovat své vydání WordPressu na nejnovější chart WordPressu, měli byste spustit:
|
1 |
helm upgrade -f values.yaml <vase_jmeno> stable/wordpress |
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:
|
1 |
helm rollback release-name revision-number |
V našem případě spusťte následující příkaz pro vrácení k předchozímu vydání:
|
1 |
helm rollback myblog 1 |
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:
- Nasaďte PHP aplikaci na Kubernetes cluster s Ubuntu 18.04
- Jak vytvořit Kubernetes cluster pomocí Kubeadm na Ubuntu 18.04
- Co je Docker? Přehled ekosystému Docker
Příjemnou práci!

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