Promocja: pl – 5 PLN/rok | eu – 5 PLN/rok | com – 40 PLN/rok
Sztuczna Inteligencja w wyszukiwarce domen Aktywuj
Certyfikat SSL z szyfrowaniem ECDSA -60% Zamów

Uruchom WordPress, korzystając z SaaS Kubernetes i SaaS MariaDB

  • Pomoc
  • Kubernetes
  • Uruchom WordPress, korzystając z SaaS Kubernetes i SaaS MariaDB

Korzystając z Kubernetes, można w bardzo prosty sposób zainstalować i uruchomić oprogramowanie WordPress. W przeciwieństwie na przykład do usług VPS uruchomienie WordPressa z użyciem Kubernetes nie wymaga poświęcenia dodatkowego czasu na odpowiednie przygotowywanie środowiska pod system zarządzanie treścią. Procesy dotyczące instalacji i konfiguracji serwera WWW, w tym interpretera PHP, realizowane są automatycznie na podstawie gotowych plików YAML. Baza danych dla aplikacji WordPress dostarczana jest jako gotowe środowisko w ramach usługi SaaS MariaDB.

 

Aktywacja niezbędnych usług

W celu rozpoczęcia prac aktywuj usługi SaaS Kubernetes i SaaS MariaDB, dostępne w nazwa.pl. Zamówienie na wybrane usługi złożysz bezpośrednio ze strony https://www.nazwa.pl/. Usługa Kubernetes dostępna jest w menu Kubernetes, a usługa SaaS MariaDB, dostępna jest w menu SaaS w sekcji Bazy danych.

ZAMÓW SAAS KUBERNETES

ZAMÓW SAAS MARIADB

Połączenie z WordPressem powinno być dodatkowo zabezpieczone za pomocą certyfikatu SSL. W ofercie nazwa.pl dostępne są między innymi certyfikaty nazwaSSL Premium z szyfrowaniem ECDSA na bazie krzywych eliptycznych. Jeżeli Twoja usługa Kubernetes ma nazwę hosta na przykład saas12345.nazwa.pl, a chcesz uruchomić Kubernetes w domenie wp.saas12345.nazwa.pl, podczas zamawiania certyfikatu wpisz nazwę domeny wp.saas.12345.nazwa.pl.

ZAMÓW NAZWASSL PREMIUM

Po aktywacji certyfikatu SSL musisz tylko pobrać jego klucz prywatny i klucz publiczny (Sprawdź: Klucz prywatny i klucz publiczny), które następnie wgraj na swoją usługę SaaS Kubernetes.

 

Uruchomienie Hostpath Storage

Zaloguj się na usługę SaaS Kubernetes przez SSH i uruchom możliwość korzystania z HostPath Storage (Sprawdź: Zarządzanie mechanizmem HostPath Storage), czyli trwałego magazynu danych dla kontenerów w klastrze. W tym celu należy wykonaj polecenie:

kubernetes enable hostpath-storage

 

Uruchomienie modułu Ingress

Aktywacja Ingress Controller (Sprawdź: Zarządzanie mechanizmem Ingress) w Kubernetes jest niezbędna do obsługi ruchu na Twoim klastrze. Moduł ten jest odpowiedzialny za nasłuchiwanie na żądania HTTP/HTTPS i przekierowywanie ich do odpowiednich usług w klastrze na podstawie reguł konfiguracji Ingress. Aby uruchomić moduł Ingress, wykonaj następujące polecenie:

kubernetes enable ingress

 

Pliki konfiguracyjne aplikacji

W przypadku zarządzaniu aplikacjami w klastrze Kubernetes konieczne jest zdefiniowanie plików konfiguracyjnych. Są to manifest PVC (PersistentVolumeClaim) oraz definicja YAML Service. Stanowią one kluczowe elementy do zarządzania zasobami w klastrze, zapewniając elastyczne i skalowalne metody zarządzania zarówno przechowywaniem danych, jak i sposobem, w jaki aplikacje są dostępne i komunikują się w klastrze.

Skorzystaj z gotowych plików pvc.yaml i wordpress-deployment.yaml, które są dostępne do pobrania w postaci archiwum wordpress-kubernetes.tar.gz tutaj. Po pobraniu plików zapisz je w katalogu /wp na swojej usłudze Kubernetes. Po wykupieniu certyfikatu SSL musisz wgrać na host Kubernetes otrzymane pliki .crt oraz .key tego certyfikatu (Sprawdź: Klucz prywatny i klucz publiczny).

curl -LO https://static.nazwa.pl/rotator/wortal/pomoc/wordpress-deployment.yaml
curl -LO https://static.nazwa.pl/rotator/wortal/pomoc/pvc.yaml

W naszym przykładzie przygotujemy instalację WordPress, która:

  1. będzie korzystała z domeny: wp.saas12345.nazwa.pl
  2. będzie korzystała z hosta baz danych na usłudze SaaS MariaDB o adresie: saas00001.nazwa.pl

 

Konfiguracja zmiennych dla bazy danych

WordPress to oprogramowanie, które korzysta z interpretera PHP oraz bazy danych MySQL. Dostęp do bazy danych jest chroniony hasłem. Taka konfiguracja wymaga w pierwszej kolejności wyeksportowania informacji, które będą odpowiadały za połączenie z bazą danych.

export WP_DOMAIN=wp.saas12345.nazwa.pl
#poniżej musi być ip - do rozpoznania przez system bazodanowy
export K8S_HOST_IP=`dig +short wp.saas12345.nazwa.pl`
export WP_DB_USERNAME=[login do bazy danych]
export WP_DB_PASSWORD=[hasło do bazy danych]
export DB_HOST=saas00001.nazwa.pl

W powyższym przykładzie zamiast [login do bazy danych] oraz [hasło do bazy danych] należy wpisać login i hasło do bazy danych założonej na usłudze SaaS MariaDB.

 

Dodanie certyfikatu SSL dla Ingressa

Znając domenę, pod którą dostępna będzie strona WordPress, za pomocą komendy kubectl create secret tls utworzysz mechanizm Secret zawierającej certyfikat TLS, który możesz wykorzystać do zabezpieczenia komunikacji sieciowej w klastrze i który dotyczy Twojej domeny.

kubectl create secret tls wp-tls --cert wp.saas12345.nazwa.pl.crt --key wp.saas12345.nazwa.pl.key -n wordpress

 

Kontenery WordPress i MySQL

Konfiguracje zasobów dla WordPressa, który zostanie zamontowany przez PersistentVolume, masz zapisane w katalogu /wp. Zanim zostaną one użyte, musisz utworzyć Namespace, w którym będzie działał WordPress.

curl -LO https://[domena]wordpress-deployment.yaml
curl -LO https://[domena]pvc.yaml

Następnie Tworzymy plik db_setup.sql dla bazy danych:

cat <<EOF > db_setup.sql
CREATE DATABASE wordpress;
CREATE USER "$WP_DB_USERNAME"@"$K8S_HOST_IP" IDENTIFIED BY "$WP_DB_PASSWORD";
GRANT ALL PRIVILEGES ON wordpress.* TO "$WP_DB_USERNAME"@"$K8S_HOST_IP";
FLUSH PRIVILEGES;
EOF

Przed rozpoczęciem pracy z zewnętrzną bazą danych, o ile wcześniej nie instalowałeś polecenia mysql, będziesz musiał to zrobić. W tym celu wykonaj komendę:

apt install mysql-client-core-8.0

Połącz się z serwerem baz danych SaaS MariaDB i wykonaj na nim polecenia uprzednio zdefiniowane w pliku db_setup.sql:

mysql -u admin -p -h saas00001.nazwa.pl < db_setup.sql

System poprosi Cię o podanie hasła administratora. Wpisanie hasła spowoduje uruchomienie komend przygotowanych w pliku db_setup.sql na serwerze SaaS MariaDB.

Przygotuj teraz manifesty dla Secretów, czyli mechanizmów, które w Kubernetes służą do przechowywania i zarządzania poufnymi informacjami, takimi jak hasła, tokeny, klucze SSH, certyfikaty SSL i inne dane poufne. Przygotuj również config mapę dla WordPressa.

cat <<EOF > config_map.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: wordpress
namespace: wordpress
data:
dbhost: $DB_HOST
EOF

Przygotuj mysql_secret.yaml, który będzie zawierał informacje dotyczące połączenia z bazą danych:

cat <<EOF > mysql_secret.yaml
apiVersion: v1
kind: Secret
metadata:
name: wpdb
namespace: wordpress
type: Opaque
data:
username: `echo -n $WP_DB_USERNAME | base64`
password: `echo -n $WP_DB_PASSWORD | base64`
EOF

Przygotuj konfigurację dla Ingressa, wykonując poniższe polecenia:

cat <<EOF > ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: https-ingress
namespace: wordpress
annotations:
nginx.ingress.kubernetes.io/ssl-redirect: "true"
spec:
ingressClassName: nginx
tls:
- hosts:
- $WP_DOMAIN
secretName: wp-tls
rules:
- host: $WP_DOMAIN
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: wordpress
port:
number: 80
EOF

Po wykonaniu powyższych komend będziesz mieć już przygotowane wszystkie zasoby, które są potrzebne do wdrożenia witryny WordPress korzystającej z bazy danych na usłudze SaaS MariaDB. Zastosowanie zasobów Kubernetes zdefiniowanych za pomocą plików konfiguracyjnych w formacie YAML lub JSON wykonasz za pomocą kubectl apply -f. Pamiętaj, że w katalogu, w którym uruchamiasz to polecenie, powinny znajdować się tylko te pliki YAML, które odpowiadają za WordPressa.

kubectl apply -f ./

Po kilku chwilach sprawdź, czy Pody z WordPressem i MySQL działają poprawnie:

kubectl get pods

Status „Running” oznacza, że dany Pod pracuje. Jak widzisz, WordPress jest uruchomiony na trzech Podach, które działają równocześnie dzięki wbudowanemu w Ingress mechanizmowi rozdzielania ruchu między poszczególnymi workerami.

Przygotowany w ten sposób WordPress udostępnij dla każdego poziomu przeglądarki WWW w połączeniu zabezpieczonym przez SSL, za pomocą komendy kubectl port-forward. W tym celu wykonaj polecenie:

kubectl port-forward deployment/wordpress 443:443 --address 0.0.0.0 &

Jako potwierdzenie rozpoczęcia przekierowania portów otrzymasz informację z numerem PID tego procesu. Od teraz, wpisując w pasku adresu przeglądarki WWW URL strony w postaci nazwy Twojej usługi SaaS Kubernetes, na przykład https://wp.saas12345.nazwa.pl, zobaczysz swoją witrynę WordPress. Początkowo będzie to skrypt instalacyjny, który wymaga wprowadzenia podstawowych informacji konfiguracyjnych i danych Administratora strony:

Pamiętaj, że każde kolejne wywołanie strony WWW w terminalu będzie potwierdzone komunikatem „Handling connection” z numerem portu, który oznacza obsłużenie połączenia z usługą WordPress.

Aby przerwać port-forward, zweryfikuj za pomocą systemowego polecenia ps z odpowiednimi flagami, jaki proces systemowy odpowiada za przekazywanie portów dla Twojego WordPressa:

ps -f | grep 'kubectl' | grep 'port-forward'

Przy aktywnym przekazywaniu portów zobaczysz informację o procesie, który odpowiada za to działanie oraz informację o serwisie, który obsługiwany jest przez port-forward. Aby wyłączyć przekazywanie portów, skorzystaj z polecenia kill z flagą -9, podając numer procesu, który odpowiada za aktywne przekazywanie portów:

kill -9 [id procesu]

gdzie [id procesu] to identyfikator procesu podany jako liczba po nazwie użytkownika, w naszym przykładzie jest to 2387648:

Zakończenie przekazywania portów możliwe jest także z użyciem polecenia pkill z flagą: -f ”port-forward”:

pkill -f ”port-forward”

Table of Contents