Torna al blog

Configurazione di WordPress con MySQL su Kubernetes con Helm

Configurazione di WordPress con MySQL su Kubernetes con Helm

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:

  1. Un cluster Kubernetes attivo e funzionante. Segui questo tutorial per i passaggi di installazione di Kubernetes su Ubuntu.
  2. Lo strumento da riga di comando di Kubernetes kubectl.
  3. 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.
  4. 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:

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:

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:

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:

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

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:

Per aggiornare le tabelle interne di MySQL che gestiscono i permessi di accesso, utilizza la seguente istruzione:

Infine, puoi chiudere il client MySQL eseguendo il comando seguente nella shell di MySQL:

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

Ti verrà chiesta la password. Usa la password che hai inserito sopra per l'utente WordPress. Se riesci ad accedere, congratulazioni, hai creato con successo un utente MySQL. Successivamente, verifica che questo utente abbia accesso al database di WordPress. Esegui il comando seguente nella shell di MySQL:
Se vedi il tuo database WordPress qui sotto, il tuo utente WordPress ha accesso al database WordPress.

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

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:

Successivamente, se vuoi verificare se sei in grado di connetterti da remoto, esegui il comando seguente dalla tua macchina locale o dal server di sviluppo:
Aggiungi 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:

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:

Una volta completato il processo, vedrai un servizio creato con il nome myblog-wordpress. Ci vorrà del tempo prima che WordPress sia pronto per essere utilizzato. Per trovare i servizi in esecuzione, esegui il comando seguente:
Otterrai un risultato come questo:

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:

WordPress with MySQL 1

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:

Prima dell'aggiornamento, se desideri vedere l'elenco dei rilasci puoi eseguire il comando seguente:

Otterrai il seguente output come:

Se vuoi vedere se è disponibile una nuova versione del repository di WordPress, puoi eseguire il comando seguente:

Ogni volta che desideri aggiornare la tua release di WordPress all'ultimo chart di WordPress, dovresti eseguire:

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:

Nel nostro caso, esegui il comando seguente per ripristinare la release precedente:

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:

Buon computing!

author

Hark Labs

Autore · CloudSigma

Preslav Dobrev è un designer creativo presso CloudSigma, con un focus su un'identità aziendale coerente attraverso l'uso di canali di marketing tradizionali e innovativi. È abile nel fondere la visione artistica con il marketing strategico per creare narrazioni di brand di grande impatto.

Commenti

Ancora nessun commento. Scrivi il primo.