Kubernetes è ormai il modo standard per distribuire applicazioni scalabili e ad alta disponibilità. Kubernetes consente agli sviluppatori di avviare e arrestare rapidamente le istanze in base alle esigenze per garantire una distribuzione fluida dei contenuti. Per saperne di più su Kubernetes, segui la nostra guida dettagliata Conoscere Kubernetes.
Helm è un gestore di pacchetti molto popolare utilizzato per installare applicazioni su Kubernetes. Helm mira a distribuire e gestire applicazioni su cluster Kubernetes e a semplificare il processo man mano che si procede. Fornisce inoltre l'accesso ad applicazioni pronte all'uso per Kubernetes che sono pacchettizzate. Queste sono chiamate Charts. Avere familiarità con Kubernetes e Helm è un'importante aggiunta all'arsenale di qualsiasi specialista DevOps.
WordPress è uno dei sistemi di gestione dei contenuti (CMS) più popolari. Combinandolo con il database MySQL si ottengono applicazioni web ad alte prestazioni e altamente scalabili. Mantenere MySQL esterno consentirà inoltre a più applicazioni di sfruttare lo stesso database per i loro casi d'uso.
In questo post, installeremo WordPress su Kubernetes utilizzando il gestore di pacchetti Helm e li collegheremo a un server MySQL esterno. Cominciamo!
Prerequisiti
La seguente configurazione software sarà necessaria per il completamento con successo di questo tutorial:
- Un cluster Kubernetes attivo e funzionante. Segui questo tutorial per i passaggi di installazione di Kubernetes su Ubuntu.
- Lo strumento da riga di comando di Kubernetes
kubectl. - Avrai bisogno di un gestore di pacchetti Helm installato. Se non hai Helm pronto per l'uso, puoi scaricarlo dalla sua pagina di rilascio ufficiale su GitHub – helm/helm: The Kubernetes Package Manager. Per iniziare con una guida passo-passo per Helm puoi anche leggere Introduzione a Helm: il gestore di pacchetti per Kubernetes.
- Dovrai avere MySQL installato insieme all'utente root e alla password. Se non conosci MySQL, assicurati di dare un'occhiata a Come configurare MySQL su un server e le basi di MySQL e Utente MySQL – Creazione e concessione dei permessi.
Devi anche avere un cluster Kubernetes in esecuzione connesso a MySQL. Per gli utenti che hanno più cluster, assicurati di conoscere il cluster corrente connesso a MySQL. Per vedere tutti i diversi cluster configurati nel tuo file di configurazione kubectl, esegui il comando seguente:
|
1 |
kubectl config get-contexts |
Sulla tua macchina, dovresti ottenere il seguente output:
|
Current |
Name |
Cluster |
AuthInfo |
Namespace |
|
* |
docker-desktop |
docker-desktop |
docker-desktop |
Poiché stiamo utilizzando Docker Desktop per eseguire Kubernetes, vedrai visualizzato docker-desktop) indica quale cluster è attualmente il contesto predefinito. Nel caso in cui sia necessario modificare il contesto corrente, esegui:*) indica quale cluster è attualmente il contesto predefinito. Nel caso in cui sia necessario modificare il contesto corrente, esegui:
|
1 |
kubectl config use-context context-name |
Ora sei pronto per seguire i passaggi del tutorial.
Configurazione di MySQL
Per prima cosa, creeremo un utente dedicato in MySQL per connetterci a WordPress. Questo è necessario perché la nostra installazione di WordPress risiederà su un server separato all'interno del cluster Kubernetes. Dal server MySQL, accedi a MySQL con il seguente comando:
|
1 |
mysql -u root -p |
Ti verrà chiesta la password di root. Inserisci la password e sarai connesso.
-
Creazione di un database dedicato per WordPress
In MySQL può esserci un numero qualsiasi di database. Ulteriori database possono anche essere condivisi tra le applicazioni. Anche WordPress viene fornito con il proprio database. Qui dobbiamo creare un database dedicato per WordPress. Per creare questo database dedicato, puoi eseguire la seguente istruzione sulla bash di MySQL:
|
1 |
CREATE DATABASE wordpress |
-
Creazione di un utente dedicato per WordPress
Dopo aver creato il database, creeremo un utente dedicato per questo database. Utilizzeremo questo utente per connetterci al nostro database appena creato:
|
1 |
CREATE USER wordpress_user IDENTIFIED BY '<password>'; |
Inserisci una password complessa sopra. Sebbene abbiamo creato l'utente per WordPress, finora non abbiamo aggiunto alcun privilegio. Dobbiamo fornire i privilegi ai nostri utenti per l'accesso e le operazioni DML (Data Manipulation). Per mantenere le cose semplici, forniremo ai nostri utenti tutti i privilegi. Fai attenzione, questo non è raccomandato in produzione. Esegui il comando seguente nella shell di MySQL:
|
1 |
GRANT ALL PRIVILEGES ON wordpress.* TO wordpress_user@'%'; |
Per aggiornare le tabelle interne di MySQL che gestiscono i permessi di accesso, utilizza la seguente istruzione:
|
1 |
FLUSH PRIVILEGES; |
Infine, puoi chiudere il client MySQL eseguendo il comando seguente nella shell di MySQL:
|
1 |
Exit; |
-
Verifica del nostro utente e del database
Successivamente, dobbiamo verificare che il nostro WordPress utente possa connettersi al database di WordPress. Per fare ciò, apri la shell di MySQL ed esegui il comando seguente:
|
1 |
mysql -u <wordpress_user> -p |
|
1 |
show databases |
-
Consentire connessioni remote al nostro server MySQL
Fino ad ora, abbiamo un utente WordPress funzionante e un database WordPress. Tuttavia, il nostro server MySQL e il database WordPress si trovano su server separati. Pertanto, dobbiamo assicurarci che WordPress possa connettersi al database MySQL. Per fare questo, dobbiamo modificare la nostra configurazione di MySQL per consentire le connessioni provenienti da host remoti. Dovrai modificare il file mysqld.cnf . Sui sistemi basati su Linux questo file è presente in:
|
1 |
/etc/mysql/mysql.conf.d/mysqld.cnf |
Successivamente, apri il file utilizzando un qualsiasi editor di testo e individua il bind-address. Il bind-address specifica l'IP su cui MySQL può ascoltare. Per impostazione predefinita, MySQL ascolta solo su 127.0.0.1.. Per consentire connessioni da host esterni, modifica il bind-address in 0.0.0.0.. Affinché queste modifiche abbiano effetto, riavvia il server MySQL eseguendo il comando seguente:
|
1 |
systemctl restart mysql |
|
1 |
mysql -h <mysql_server_ip> -u wordpress_user -p |
mysql_server_ip al comando precedente ed eseguilo. Se riesci a connetterti senza errori, puoi procedere.
Installazione e aggiornamento di WordPress
WordPress per impostazione predefinita utilizza MariaDB come database. Non vogliamo utilizzare questo database, poiché vogliamo il nostro database MySQL. Insieme a questa modifica, dobbiamo anche configurare l'utente amministratore e la password. Lo faremo implementando i parametri della riga di comando.
Per prima cosa, crea una nuova cartella chiamata my blog-settings. All'interno della cartella crea un nuovo file chiamato values.yaml. Inserisci i contenuti seguenti nel file values.yaml:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
## Impostazioni WordPress wordpressUsername: my_user wordpressPassword: some_strong_password wordpressEmail: sample@example.com wordpressFirstName: User wordpressLastName: Last wordpressBlogName: My Blog! ## Impostazioni Database externalDatabase: host: <mysql_server_ip> user: wordpress_user password: password database: wordpress ## Abilita Maria DB mariadb: enabled: false |
Questo file si spiega da solo. Nota che di seguito abbiamo disabilitato MariaDB. Ora che la nostra configurazione è pronta, è il momento di eseguire helm per un'installazione di WordPress. Esegui il comando seguente in PowerShell:
|
1 |
helm install myblog -f values.yaml stable/wordpress |
myblog-wordpress. Ci vorrà del tempo prima che WordPress sia pronto per essere utilizzato. Per trovare i servizi in esecuzione, esegui il comando seguente:|
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 |
Qui abbiamo informazioni molto utili sui servizi in esecuzione. Dobbiamo prestare attenzione all'IP esterno e alla porta. L'IP esterno è l'IP su cui viene servito il tuo WordPress. Poiché stiamo utilizzando Docker Desktop, otteniamo none sotto external IP. Otterrai l'IP a seconda del tuo sistema. Apri il tuo browser web e inserisci questo IP. Vedrai la pagina di login di WordPress:
Queste sono le credenziali che abbiamo fornito nel file YAML sopra indicato. Inserisci quelle credenziali e sarai pronto per configurare il tuo sito web su WordPress e memorizzare i contenuti nel nostro database MySQL appena creato.
Aggiornamento di WordPress
WordPress rilascia aggiornamenti per correggere vulnerabilità di sicurezza e distribuire più funzionalità/correzioni di bug e altro ancora. Puoi aggiornare l'installazione di WordPress eseguendo il comando seguente in PowerShell:
|
1 |
helm upgrade |
Prima dell'aggiornamento, se desideri vedere l'elenco dei rilasci puoi eseguire il comando seguente:
|
1 |
helm list |
Otterrai il seguente output come:
|
1 2 3 |
Attendi pazientemente mentre noi recuperiamo le ultime dai tuoi chart repository… …Salta il chart repository …Con successo ottenuto un aggiornamento dal il “stable” chart repository |
Se vuoi vedere se è disponibile una nuova versione del repository di WordPress, puoi eseguire il comando seguente:
|
1 |
helm inspect chart stable/wordpress |
Ogni volta che desideri aggiornare la tua release di WordPress all'ultimo chart di WordPress, dovresti eseguire:
|
1 |
helm upgrade -f values.yaml <tuo_nome> stable/wordpress |
Dobbiamo utilizzare lo stesso file di configurazione di prima in modo che i valori di configurazione non cambino.
Ripristino di una release
Ogni volta che esegui un aggiornamento utilizzando Helm, Helm crea un punto di ripristino della release. Puoi tornare indietro se le cose non funzionano come previsto. Le release possono essere confrontate e ripristinate. Se il processo di aggiornamento va storto a causa di qualsiasi problema, puoi ripristinare la release precedente. Per eseguire il ripristino, esegui il comando seguente:
|
1 |
helm rollback release-nome revisione-numero |
Nel nostro caso, esegui il comando seguente per ripristinare la release precedente:
|
1 |
helm rollback myblog 1 |
Per verificare ora che il processo di ripristino sia stato completato con successo, puoi eseguire il comando helm list.
Conclusione
In questo tutorial completo, ti abbiamo mostrato come configurare MySQL e installare WordPress con questo MySQL esterno. Abbiamo installato WordPress su Kubernetes utilizzando il gestore di pacchetti Helm e abbiamo anche eseguito aggiornamenti in WordPress.
Ora che conosci l'installazione su Kubernetes tramite Helm, non fermarti qui. Sentiti libero di consultare il blog di CloudSigma per saperne di più su Kubernetes:
- Distribuire un'applicazione PHP su un cluster Kubernetes con Ubuntu 18.04
- Come creare un cluster Kubernetes utilizzando Kubeadm su Ubuntu 18.04
- Cos'è Docker? Una panoramica dell'ecosistema Docker
Buon computing!

Commenti
Ancora nessun commento. Scrivi il primo.