Kubernetes jest obecnie standardowym sposobem wdrażania aplikacji, które są skalowalne i charakteryzują się wysoką dostępnością. Kubernetes pozwala programistom na szybkie uruchamianie i zamykanie instancji w zależności od potrzeb, aby zapewnić płynne dostarczanie treści. Aby dowiedzieć się więcej o Kubernetes, skorzystaj z naszego szczegółowego przewodnika Poznajemy Kubernetes.
Helm to bardzo popularny menedżer pakietów używany do instalowania aplikacji w systemie Kubernetes. Helm ma na celu wdrażanie i zarządzanie aplikacjami w klastrach Kubernetes oraz uproszczenie tego procesu na każdym kroku. Zapewnia również dostęp do gotowych, spakowanych aplikacji dla Kubernetes. Są one nazywane Charts. Znajomość Kubernetes i Helm to ważne uzupełnienie arsenału każdego specjalisty DevOps.
WordPress to jeden z najpopularniejszych systemów zarządzania treścią (CMS). Połączenie go z bazą danych MySQL pozwala uzyskać wydajne i wysoce skalowalne aplikacje internetowe. Utrzymanie MySQL jako zewnętrznej bazy danych pozwoli również większej liczbie aplikacji na korzystanie z tej samej bazy danych w ich scenariuszach użycia.
W tym wpisie zainstalujemy WordPressa na Kubernetesie za pomocą menedżera pakietów Helm i połączymy je z zewnętrznym serwerem MySQL. Zaczynajmy!
Wymagania wstępne
Do pomyślnego ukończenia tego samouczka wymagana będzie następująca konfiguracja oprogramowania:
- Działający klaster Kubernetes. Skorzystaj z tego samouczka, aby dowiedzieć się, jak zainstalować Kubernetes na Ubuntu.
- Narzędzie wiersza poleceń Kubernetes
kubectl. - Będziesz potrzebować zainstalowanego menedżera pakietów Helm. Jeśli nie masz jeszcze przygotowanego Helma, możesz go pobrać z jego oficjalnej strony wydań w serwisie GitHub – helm/helm: The Kubernetes Package Manager. Aby rozpocząć pracę z przewodnikiem krok po kroku dla Helm, możesz również przeczytać Introduction to Helm: Package Manager for Kubernetes.
- Musisz mieć zainstalowany serwer MySQL wraz z użytkownikiem root i hasłem. Jeśli dopiero zaczynasz pracę z MySQL, koniecznie zapoznaj się z How to setup MySQL on a server and MySQL basics oraz MySQL User – Create and Grant Permissions.
Musisz również posiadać działający klaster Kubernetes połączony z MySQL. W przypadku użytkowników posiadających wiele klastrów upewnij się, że wiesz, który klaster jest aktualnie połączony z MySQL. Aby zobaczyć wszystkie skonfigurowane klastry w swoim pliku konfiguracyjnym kubectl, uruchom poniższe polecenie:
|
1 |
kubectl config get-contexts |
Na swoim komputerze powinieneś otrzymać poniższe dane wyjściowe:
|
Current |
Name |
Cluster |
AuthInfo |
Namespace |
|
* |
docker-desktop |
docker-desktop |
docker-desktop |
Ponieważ do uruchomienia Kubernetes używamy Docker Desktop, zobaczysz docker-desktop na liście. Twoje wartości mogą być inne. Znak gwiazdki (*) wskazuje, który klaster jest obecnie domyślnym kontekstem. Jeśli chcesz zmienić bieżący kontekst, uruchom:
|
1 |
kubectl config use-context context-name |
Jesteś teraz gotowy, aby przejść do kolejnych kroków samouczka.
Konfiguracja MySQL
Najpierw utworzymy dedykowanego użytkownika w bazie MySQL do połączenia z WordPressem. Jest to konieczne, ponieważ nasza instalacja WordPressa będzie znajdować się na osobnym serwerze wewnątrz klastra Kubernetes. Z poziomu serwera MySQL zaloguj się do MySQL za pomocą następującego polecenia:
|
1 |
mysql -u root -p |
Zostaniesz poproszony o hasło użytkownika root. Wprowadź hasło, a zostaniesz połączony.
-
Tworzenie dedykowanej bazy danych dla WordPressa
W MySQL może istnieć dowolna liczba baz danych. Kolejne bazy danych mogą być również współdzielone przez aplikacje. WordPress ma również własną bazę danych. Tutaj musimy utworzyć dedykowaną bazę danych dla WordPressa. Aby utworzyć tę dedykowaną bazę danych, możesz wykonać poniższe polecenie w konsoli MySQL:
|
1 |
CREATE DATABASE wordpress |
-
Tworzenie dedykowanego użytkownika dla WordPressa
Po utworzeniu bazy danych utworzymy dla niej dedykowanego użytkownika. Użyjemy tego użytkownika do połączenia się z naszą nowo utworzoną bazą danych:
|
1 |
CREATE USER wordpress_user IDENTIFIED BY '<password>'; |
Wprowadź powyżej silne hasło. Chociaż utworzyliśmy użytkownika dla WordPressa, do tej pory nie dodaliśmy żadnych uprawnień. Musimy nadać uprawnienia naszym użytkownikom do dostępu i operacji DML (Data Manipulation). Aby uprościć sprawę, nadamy naszym użytkownikom wszystkie uprawnienia. Zachowaj ostrożność, nie jest to zalecane w środowisku produkcyjnym. Wykonaj poniższe polecenie w powłoce MySQL:
|
1 |
GRANT ALL PRIVILEGES ON wordpress.* TO wordpress_user@'%'; |
Aby zaktualizować wewnętrzne tabele MySQL, które zarządzają uprawnieniami dostępu, użyj następującej instrukcji:
|
1 |
FLUSH PRIVILEGES; |
Na koniec możesz zamknąć klienta MySQL, uruchamiając poniższe polecenie w powłoce MySQL:
|
1 |
Exit; |
-
Weryfikacja naszego użytkownika i bazy danych
Następnie musimy zweryfikować, czy nasz WordPress użytkownik może połączyć się z bazą danych WordPress. Aby to zrobić, otwórz powłokę MySQL i uruchom poniższe polecenie:
|
1 |
mysql -u <wordpress_user> -p |
|
1 |
show databases |
-
Zezwalanie na zdalne połączenia z naszym serwerem MySQL
Do tej pory mamy działającego użytkownika WordPress i bazę danych WordPress. Jednak nasz serwer MySQL i baza danych WordPress znajdują się na osobnych serwerach. Dlatego musimy upewnić się, że WordPress może połączyć się z bazą danych MySQL. W tym celu musimy edytować naszą konfigurację MySQL, aby zezwolić na połączenia pochodzące ze zdalnych hostów. Będziesz musiał edytować plik mysqld.cnf . W systemach opartych na Linuksie plik ten znajduje się pod ścieżką:
|
1 |
/etc/mysql/mysql.conf.d/mysqld.cnf |
Następnie otwórz plik za pomocą dowolnego edytora tekstu i znajdź bind-address. Parametr bind-address określa adres IP, na którym MySQL może nasłuchiwać. Domyślnie MySQL nasłuchuje tylko na 127.0.0.1.. Aby zezwolić na połączenia z zewnętrznych hostów, zmień bind-address na 0.0.0.0.. Aby zmiany weszły w życie, zrestartuj serwer MySQL, uruchamiając poniższe polecenie:
|
1 |
systemctl restart mysql |
|
1 |
mysql -h <mysql_server_ip> -u wordpress_user -p |
mysql_server_ip do powyższego polecenia i je wykonaj. Jeśli możesz się połączyć bez błędów, możesz przejść dalej.
Instalacja i aktualizacja WordPressa
WordPress domyślnie używa bazy danych MariaDB. Nie chcemy używać tej bazy danych, ponieważ zależy nam na naszej bazie danych MySQL. Wraz z tą zmianą musimy również skonfigurować użytkownika administratora i hasło. Zrobimy to, implementując parametry wiersza poleceń.
Najpierw utwórz nowy folder o nazwie my blog-settings. Wewnątrz folderu utwórz nowy plik o nazwie values.yaml. Wprowadź poniższą zawartość do pliku values.yaml:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
## Ustawienia WordPress wordpressUsername: my_user wordpressPassword: some_strong_password wordpressEmail: sample@example.com wordpressFirstName: User wordpressLastName: Last wordpressBlogName: Mój Blog! ## Ustawienia bazy danych externalDatabase: host: <mysql_server_ip> user: wordpress_user password: password database: wordpress ## Włącz Maria DB mariadb: enabled: false |
Ten plik nie wymaga wyjaśnień. Zauważ, że poniżej wyłączyliśmy MariaDB. Teraz, gdy nasza konfiguracja jest gotowa, czas na wykonanie helm dla instalacji WordPressa. Uruchom poniższe polecenie w PowerShellu:
|
1 |
helm install myblog -f values.yaml stable/wordpress |
myblog-wordpress. Minie trochę czasu, zanim WordPress będzie gotowy do użycia. Aby znaleźć uruchomione usługi, wykonaj poniższe polecenie:|
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 |
Tutaj mamy bardzo pomocne informacje o uruchomionych usługach. Musimy zwrócić uwagę na zewnętrzny adres IP i port. Zewnętrzny adres IP to adres IP, na którym serwowany jest Twój WordPress. Ponieważ używamy Docker Desktop, w kolumnie external IP otrzymujemy none. Otrzymasz adres IP w zależności od swojego systemu. Otwórz przeglądarkę internetową i wpisz ten adres IP. Zobaczysz stronę logowania WordPressa:
Są to dane uwierzytelniające, które podaliśmy w powyższym pliku YAML. Wprowadź te dane, a będziesz gotowy do skonfigurowania swojej witryny w WordPressie i przechowywania zawartości w naszej nowo utworzonej bazie danych MySQL.
Aktualizacja WordPressa
WordPress wydaje aktualizacje, aby naprawić luki w zabezpieczeniach oraz wprowadzić więcej funkcji/poprawek błędów i nie tylko. Możesz zaktualizować instalację WordPressa, uruchamiając poniższe polecenie w PowerShellu:
|
1 |
helm upgrade |
Przed aktualizacją, jeśli chcesz zobaczyć listę wydań, możesz uruchomić poniższe polecenie:
|
1 |
helm list |
Otrzymasz poniższy wynik, na przykład:
|
1 2 3 |
Czekaj chwilę gdy my pobieramy najnowsze dane z Twoich repozytoriów chartów… …Pomiń lokalne chartów repozytorium …Pomyślnie pobrano aktualizację z repozytorium chartów “stable” chartów repozytorium |
Jeśli chcesz sprawdzić, czy dostępna jest nowa wersja repozytorium WordPressa, możesz uruchomić poniższe polecenie:
|
1 |
helm inspect chart stable/wordpress |
Zawsze, gdy chcesz zaktualizować swoje wydanie WordPressa do najnowszego chartu WordPressa, powinieneś uruchomić:
|
1 |
helm upgrade -f values.yaml <your_name> stable/wordpress |
Musimy użyć tego samego pliku konfiguracyjnego co poprzednio, aby wartości konfiguracyjne się nie zmieniły.
Wycofywanie wydania
Za każdym razem, gdy wykonujesz aktualizację za pomocą Helm, Helm creates a checkpoint of release. Możesz do niego wrócić, jeśli coś nie zadziała zgodnie z oczekiwaniami. Wydania można porównywać i przywracać. Jeśli proces aktualizacji nie powiedzie się z jakiegokolwiek powodu, możesz wycofać zmiany do poprzedniego wydania. Aby wycofać zmiany, wykonaj poniższe polecenie:
|
1 |
helm rollback release-name revision-number |
W naszym przypadku uruchom poniższe polecenie, aby wycofać zmiany do poprzedniego wydania:
|
1 |
helm rollback myblog 1 |
Aby teraz zweryfikować, czy proces przywracania zakończył się pomyślnie, możesz wykonać polecenie helm list.
Podsumowanie
W tym kompleksowym samouczku pokazaliśmy, jak skonfigurować MySQL i zainstalować WordPressa z tą zewnętrzną bazą danych MySQL. Zainstalowaliśmy WordPressa na Kubernetesie przy użyciu menedżera pakietów Helm, a także przeprowadziliśmy aktualizacje WordPressa.
Teraz, gdy znasz już proces instalacji na Kubernetesie przy użyciu Helm, nie zatrzymuj się tutaj. Zachęcamy do zapoznania się z blogiem CloudSigma, aby dowiedzieć się więcej o Kubernetesie:
- Wdrażanie aplikacji PHP na klastrze Kubernetes z Ubuntu 18.04
- Jak utworzyć klaster Kubernetes za pomocą Kubeadm na Ubuntu 18.04
- Co to jest Docker? Przegląd ekosystemu Docker
Udanego korzystania!

Komentarze
Brak komentarzy. Bądź pierwszy.