Kubernetes je sada standardni način za implementaciju aplikacija koje su skalabilne i imaju visoku dostupnost. Kubernetes omogućuje razvojnim programerima da brzo pokreću i zaustavljaju instance prema potrebi kako bi osigurali nesmetanu isporuku sadržaja. Da biste saznali više o Kubernetesu, pratite naš detaljni vodič Upoznavanje s Kubernetesom.
Helm je vrlo popularan upravitelj paketima koji se koristi za instaliranje aplikacija na Kubernetes. Helm ima za cilj implementirati i upravljati aplikacijama na Kubernetes klasterima te pojednostaviti proces u hodu. Također pruža pristup spremnim, pakiranim aplikacijama za Kubernetes. One se nazivaju Charts. Poznavanje Kubernetesa i Helma važan je dodatak arsenalu svakog DevOps stručnjaka.
WordPress je jedan od najpopularnijih sustava za upravljanje sadržajem (CMS). Njegovo kombiniranje s MySQL bazom podataka rezultira visokim performansama i visoko skalabilnim web aplikacijama. Održavanje MySQL-a vanjskim također će omogućiti većem broju aplikacija da iskoriste istu bazu podataka za svoje slučajeve upotrebe.
U ovom postu, mi ćemo instalirati WordPress na Kubernetes pomoću Helm upravitelja paketima i povezati ih s vanjskim MySQL poslužiteljem. Počnimo!
Preduvjeti
Sljedeće postavljanje softvera bit će potrebno za uspješan završetak ovog vodiča:
- Aktivan i pokrenut Kubernetes klaster. Pratite ovaj vodič za korake instalacije Kubernetesa na Ubuntuu.
- Kubernetes alat naredbenog retka
kubectl. - Trebat će vam instaliran Helm upravitelj paketima. Ako nemate spreman Helm za korištenje, možete ga preuzeti s njegove službene stranice s izdanjima na GitHub – helm/helm: The Kubernetes Package Manager. Da biste započeli s vodičem korak-po-korak za Helm, također možete pročitati Uvod u Helm: Upravitelj paketima za Kubernetes.
- Morat ćete imati instaliran MySQL zajedno s root korisnikom i lozinkom. Ako ste novi u MySQL-u, svakako pogledajte Kako postaviti MySQL na poslužitelj i osnove MySQL-a i MySQL korisnik – Stvaranje i dodjeljivanje dopuštenja.
Također morate imati pokrenut Kubernetes klaster povezan s MySQL-om. Za korisnike koji imaju više klastera, provjerite znate li koji je trenutni klaster povezan s MySQL-om. Da biste vidjeli sve različite klastere konfigurirane u vašoj kubectl konfiguracijskoj datoteci, pokrenite naredbu u nastavku:
|
1 |
kubectl config get-contexts |
Na svom računalu trebali biste dobiti sljedeći izlaz:
|
Current |
Name |
Cluster |
AuthInfo |
Namespace |
|
* |
docker-desktop |
docker-desktop |
docker-desktop |
Budući da koristimo Docker Desktop za pokretanje Kubernetesa, vidjet ćete docker-desktop prikazano. Vaše vrijednosti mogu biti drugačije. Znak zvjezdice (*) označava koji je klaster trenutno zadani kontekst. U slučaju da trebate promijeniti trenutni kontekst, pokrenite:
|
1 |
kubectl config use-context context-name |
Sada ste spremni pratiti korake vodiča.
Postavljanje MySQL-a
Prvo ćemo stvoriti namjenskog korisnika u MySQL-u za povezivanje s WordPressom. To je potrebno jer će naša instalacija WordPressa živjeti na zasebnom poslužitelju unutar Kubernetes klastera. S MySQL poslužitelja prijavite se u MySQL sljedećom naredbom:
|
1 |
mysql -u root -p |
Bit ćete upitani za root lozinku. Unesite lozinku i bit ćete povezani.
-
Stvaranje namjenske baze podataka za WordPress
U MySQL-u može postojati bilo koji broj baza podataka. Daljnje baze podataka također se mogu dijeliti među aplikacijama. WordPress također dolazi s vlastitom bazom podataka. Ovdje moramo stvoriti namjensku bazu podataka za WordPress. Da biste stvorili ovu namjensku bazu podataka, možete izvršiti naredbu u nastavku u MySQL ljusci:
|
1 |
CREATE DATABASE wordpress |
-
Stvaranje namjenskog korisnika za WordPress
Nakon što je baza podataka stvorena, stvorit ćemo namjenskog korisnika za ovu bazu podataka. Koristit ćemo ovog korisnika za povezivanje s našom novostvornom bazom podataka:
|
1 |
CREATE USER wordpress_user IDENTIFIED BY '<password>'; |
Gore unesite jaku lozinku. Iako smo kreirali korisnika za WordPress, do sada nismo dodali nikakve privilegije. Moramo omogućiti privilegije našim korisnicima za pristup i DML (Data Manipulation) operacije. Kako bismo pojednostavili stvari, pružit ćemo našim korisnicima sve privilegije. Budite oprezni, ovo se ne preporučuje u produkciji. Izvršite naredbu u nastavku u MySQL ljusci:
|
1 |
GRANT ALL PRIVILEGES ON wordpress.* TO wordpress_user@'%'; |
Za ažuriranje internih MySQL tablica koje upravljaju dopuštenjima pristupa, upotrijebite sljedeću izjavu:
|
1 |
FLUSH PRIVILEGES; |
Na kraju, možete zatvoriti MySQL klijent pokretanjem naredbe u nastavku u MySQL ljusci:
|
1 |
Exit; |
-
Provjera našeg korisnika i baze podataka
Zatim moramo provjeriti može li se naš WordPress korisnik povezati s WordPress bazom podataka. Da biste to učinili, otvorite MySQL ljusku i pokrenite naredbu u nastavku:
|
1 |
mysql -u <wordpress_user> -p |
|
1 |
show databases |
-
Dopuštanje udaljenih veza s našim MySQL poslužiteljem
Do sada imamo funkcionalnog WordPress korisnika i WordPress bazu podataka. Međutim, naš MySQL poslužitelj i WordPress baza podataka nalaze se na zasebnim poslužiteljima. Stoga moramo osigurati da se WordPress može povezati s MySQL bazom podataka. Za to moramo urediti našu MySQL konfiguraciju kako bismo omogućili veze koje dolaze s udaljenih računala. Morat ćete urediti mysqld.cnf datoteku. Na sustavima temeljenim na Linuxu ova se datoteka nalazi pod:
|
1 |
/etc/mysql/mysql.conf.d/mysqld.cnf |
Nakon toga otvorite datoteku pomoću bilo kojeg uređivača teksta i pronađite bind-address. bind-address određuje IP adresu koju MySQL može slušati. Prema zadanim postavkama, MySQL sluša samo na 127.0.0.1.. Kako biste omogućili veze s vanjskih računala, promijenite bind-address na 0.0.0.0.. Kako bi ove promjene stupile na snagu, ponovno pokrenite MySQL poslužitelj pokretanjem naredbe u nastavku:
|
1 |
systemctl restart mysql |
|
1 |
mysql -h <mysql_server_ip> -u wordpress_user -p |
mysql_server_ip gornjoj naredbi i izvršite je. Ako se možete povezati bez pogrešaka, možete krenuti dalje.
Instalacija i nadogradnja WordPressa
WordPress prema zadanim postavkama koristi MariaDB kao svoju bazu podataka. Ne želimo koristiti ovu bazu podataka, jer želimo našu MySQL bazu podataka. Uz ovu promjenu također moramo konfigurirati administratorskog korisnika i lozinku. To ćemo učiniti implementacijom parametara naredbenog retka.
Prvo kreirajte novu mapu pod nazivom my blog-settings. Unutar mape kreirajte novu datoteku pod nazivom values.yaml datoteku. Unesite donji sadržaj u values.yaml datoteku:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
## WordPress postavke wordpressUsername: my_user wordpressPassword: some_strong_password wordpressEmail: sample@example.com wordpressFirstName: Korisnik wordpressLastName: Prezime wordpressBlogName: Moj Blog! ## Postavke baze podataka externalDatabase: host: <mysql_server_ip> user: wordpress_user password: password database: wordpress ## Omogući Maria DB mariadb: enabled: false |
Ova datoteka govori sama za sebe. Primijetite da smo u nastavku onemogućili MariaDB. Sada kada je naša konfiguracija spremna, vrijeme je za izvršavanje helm za WordPress instalaciju. Pokrenite naredbu u nastavku u PowerShellu:
|
1 |
helm install myblog -f values.yaml stable/wordpress |
myblog-wordpress. Trebat će neko vrijeme prije nego što WordPress bude spreman za upotrebu. Da biste pronašli usluge koje se izvode, izvršite naredbu u nastavku:|
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 |
Ovdje imamo vrlo korisne informacije o uslugama koje se izvode. Moramo obratiti pažnju na vanjski IP i port. Vanjski IP je IP na kojem se poslužuje vaš WordPress. Budući da koristimo Docker Desktop, pod vanjskim IP-om dobivamo none. IP ćete dobiti ovisno o vašem sustavu. Otvorite svoj web preglednik i unesite ovaj IP. Vidjet ćete stranicu za prijavu na WordPress:
Ovo su vjerodajnice koje smo naveli u gornjoj YAML datoteci. Unesite te vjerodajnice i bit ćete spremni konfigurirati svoju web stranicu na WordPressu i pohraniti sadržaj u našu novoizgrađenu MySQL bazu podataka.
Nadogradnja WordPressa
WordPress objavljuje ažuriranja kako bi ispravio sigurnosne propuste i uveo više značajki/ispravaka pogrešaka i još mnogo toga. Instalaciju WordPressa možete nadograditi pokretanjem naredbe u nastavku u PowerShellu:
|
1 |
helm upgrade |
Prije nadogradnje, ako želite vidjeti popis izdanja, možete pokrenuti naredbu u nastavku:
|
1 |
helm list |
Dobit ćete sljedeći izlaz poput:
|
1 2 3 |
Strpite se dok mi dohvaćamo najnovije iz vaših chart repozitorijarepositories… …Preskoči lokalni chart repozitorij …Uspješno dohvaćeno ažuriranje iz from the “stable” chart repozitorija |
Ako želite vidjeti je li dostupna nova verzija WordPress repozitorija, možete pokrenuti naredbu u nastavku:
|
1 |
helm inspect chart stable/wordpress |
Kad god želite nadograditi svoje WordPress izdanje na najnoviji WordPress chart, trebali biste pokrenuti:
|
1 |
helm upgrade -f values.yaml <vaše_ime> stable/wordpress |
Moramo koristiti istu konfiguracijsku datoteku kao i prije kako se konfiguracijske vrijednosti ne bi promijenile.
Vraćanje izdanja
Svaki put kada izvršite nadogradnju pomoću Helma, Helm stvara kontrolnu točku izdanja. Možete se vratiti ako stvari ne budu radile kako se očekuje. Izdanja se mogu usporediti i vratiti natrag. Ako proces nadogradnje pođe po zlu zbog bilo kojeg problema, možete se vratiti na prethodno izdanje. Za vraćanje izvršite naredbu u nastavku:
|
1 |
helm rollback naziv--izdanja broj--revizije |
U našem slučaju, pokrenite naredbu u nastavku za vraćanje na prethodno izdanje:
|
1 |
helm rollback myblog 1 |
Kako biste sada provjerili je li postupak vraćanja uspješno završen, možete izvršiti naredbu helm list.
Zaključak
U ovom sveobuhvatnom vodiču pokazali smo vam kako postaviti MySQL i instalirati WordPress s ovim vanjskim MySQL-om. Instalirali smo WordPress na Kubernetes pomoću Helm upravitelja paketa te smo također izvršili nadogradnje u WordPressu.
Sada kada ste upoznati s instalacijom na Kubernetes pomoću Helma, nemojte se ovdje zaustaviti. Slobodno pregledajte CloudSigma blog kako biste saznali više o Kubernetesu:
- Implementacija PHP aplikacije na Kubernetes klaster s Ubuntu 18.04
- Kako stvoriti Kubernetes klaster pomoću Kubeadma na Ubuntu 18.04
- Što je Docker? Pregled Docker ekosustava
Sretno računanje!

Komentari
Još nema komentara. Budite prvi.