Powrót do bloga

Konfiguracja WordPress z MySQL na Kubernetes przy użyciu Helm

Konfiguracja WordPress z MySQL na Kubernetes przy użyciu Helm

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:

  1. Działający klaster Kubernetes. Skorzystaj z tego samouczka, aby dowiedzieć się, jak zainstalować Kubernetes na Ubuntu.
  2. Narzędzie wiersza poleceń Kubernetes kubectl.
  3. 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.
  4. 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:

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:

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:

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:

  • 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:

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:

Aby zaktualizować wewnętrzne tabele MySQL, które zarządzają uprawnieniami dostępu, użyj następującej instrukcji:

Na koniec możesz zamknąć klienta MySQL, uruchamiając poniższe polecenie w powłoce MySQL:

  • 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:

Zostaniesz poproszony o hasło. Użyj hasła wprowadzonego powyżej dla użytkownika WordPress. Jeśli uda Ci się zalogować, gratulacje – pomyślnie utworzyłeś użytkownika MySQL. Następnie zweryfikuj, czy ten użytkownik ma dostęp do bazy danych WordPress. Uruchom poniższe polecenie w powłoce MySQL:
Jeśli poniżej widzisz swoją bazę danych WordPress, oznacza to, że Twój użytkownik WordPress ma dostęp do bazy danych WordPress.

  • 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ą:

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:

Następnie, jeśli chcesz przetestować, czy możesz połączyć się zdalnie, uruchom następujące polecenie ze swojej lokalnej maszyny lub serwera deweloperskiego:
Dodaj 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:

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:

Po zakończeniu procesu zobaczysz utworzoną usługę o nazwie myblog-wordpress. Minie trochę czasu, zanim WordPress będzie gotowy do użycia. Aby znaleźć uruchomione usługi, wykonaj poniższe polecenie:
Otrzymasz wynik podobny do tego:

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:

WordPress with MySQL 1

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:

Przed aktualizacją, jeśli chcesz zobaczyć listę wydań, możesz uruchomić poniższe polecenie:

Otrzymasz poniższy wynik, na przykład:

Jeśli chcesz sprawdzić, czy dostępna jest nowa wersja repozytorium WordPressa, możesz uruchomić poniższe polecenie:

Zawsze, gdy chcesz zaktualizować swoje wydanie WordPressa do najnowszego chartu WordPressa, powinieneś uruchomić:

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:

W naszym przypadku uruchom poniższe polecenie, aby wycofać zmiany do poprzedniego wydania:

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:

Udanego korzystania!

author

Hark Labs

Autor · CloudSigma

Preslav Dobrev jest projektantem kreatywnym w CloudSigma, skupiającym się na spójnej tożsamości biznesowej przy wykorzystaniu tradycyjnych i innowacyjnych kanałów marketingowych. Biegle łączy wizję artystyczną ze strategicznym marketingiem, tworząc wywierające wpływ narracje marki.

Komentarze

Brak komentarzy. Bądź pierwszy.