This is automatic translation. If you do not like it, switch to English or another language. Thank you for understanding. OK Show original
Composizione

Redmine in Kubernetes - Parte 1: Preparazione dell'ambiente

In questa serie in due parti, lo faremo distribuire Redmine in Kubernetes. Useremo gli strumenti e le pratiche raccomandati con l'obiettivo di distribuire un'istanza resiliente di Redmine su HTTPS.

Abbiamo diviso questo how-to in due parti su cui concentrarci prima installazione di strumenti e componenti verrà utilizzata la distribuzione Redmine. Ma non preoccuparti della complessità. Anche se non conosci Kubernetes, sarà una spiegazione comprensibile.

Questa guida è stata scritta per essere cloud-agnostic, quindi abbiamo volutamente lasciato fuori tutte le menzioni della nuvola che abbiamo usato. Lascia un commento se puoi indovinare il cloud che abbiamo usato e dirci quali dettagli lo hanno regalato. Ti consigliamo di utilizzare il servizio Kubernetes offerto dal tuo cloud, poiché è ben integrato con altri servizi forniti dal cloud.

Gli ambienti come microk8s o minikube non sono considerati qui in quanto richiedono una configurazione in più che non rientra nell'ambito di questa guida. In particolare il nostro Configurazione HTTPS richiede che il nostro cluster abbia un IP pubblico.

Usiamo Helm

Kubernetes è uno strumento complesso per orchestrazione container. Ci sono molti concetti che dobbiamo imparare per iniziare. Fortunatamente per noi c'è un progetto chiamato Casco che fornisce il livello di astrazione di cui abbiamo bisogno. Con le loro stesse parole "Se avessimo fatto le cose nel modo giusto, gli utenti avrebbero potuto installare Helm e in pochi minuti installare componenti standard di produzione"

Lasciando da parte le ragioni dei loro nomi (tutto racconta la storia di una metafora, Helm, Kubernetes e Containers) helm semplifica davvero l'installazione pur lasciando spazio per personalizzare il componente in base alle nostre esigenze. Useremo Helm 3, la loro versione più recente e ancora più semplice.

Se usi la shell cloud del tuo provider cloud, è probabile che Helm 3 sia già disponibile, ma in caso contrario puoi installarlo seguendo la guida fornita dai documenti Helm, helm.sh/docs/intro/install/. Devi avere già accesso al tuo cluster dalla riga di comando che usi. Il tuo provider cloud ha una guida su come farlo.

Installa il controller Ingress

Questo è il primo componente che installeremo nel nostro cluster ed è anche il primo concetto di kubernetes che vedremo. Un controller Ingress si trova all'ingresso del cluster, riceve tutte le richieste Web e le reindirizza al componente interno responsabile della risposta alla richiesta. Inizialmente, non ci sarà nessuno pronto a rispondere, ma quando installiamo Redmine, verrà aggiunto come una destinazione per le richieste.

Kubernetes fornisce il Controller di ingresso NGINX useremo. La loro documentazione spiega come installarlo usando Helm:

helm repo aggiungi ingress-nginx https://kubernetes.github.io/ingress-nginx && helm repo update

helm install ingress-controller ingress-nginx / ingress-nginx

Il primo comando aggiunge il repository di applicazioni in cui si trova il controller di ingresso, mentre il secondo lo installa nel cluster. Al termine, il comando stamperà alcune informazioni per iniziare, incluso come ottenere l'IP pubblico assegnato al controller:

kubectl ottieni servizi --watch

Il risultato sarà qualcosa di simile a questo:

NOME TIPO CLUSTER-IP ESTERNO-IP PORTA (E) ETÀ

nginx-controller LoadBalancer 10.0.115.117 89.68.23.33 80 / TCP, 443 / TCP 5m22s

controller-ammissione ClusterIP 10.0.135.226 <none> 443 / TCP 5m22s

kubernetes ClusterIP 10.0.0.1 <none> 443 / TCP 44h

Prendi nota dell'IP-ESTERNO poiché ne avremo bisogno nel prossimo passaggio. Potrebbe accadere che invece di un IP il valore che ottieni sia <pending>. Ci vuole del tempo per il cloud per ottenere un IP pubblico e assegnarlo al cluster. Aspetta ancora qualche secondo e l'IP dovrebbe essere disponibile.

Crea un record DNS A

Ora che hai ottenuto l'IP, puoi semplicemente andare su un browser e vedere come il tuo cluster ti risponde. Naturalmente, poiché non è stata ancora installata alcuna applicazione, il cluster risponderà con un errore "404 non trovato". Creeremo un dominio DNS che possiamo associare a quell'IP, si spera, più facile da ricordare di un elenco di numeri e punti.

Il modo per creare un dominio Internet per Redmine dipende molto dal tuo provider di dominio, ma in tutti i casi, si finisce per creare un DNS A Record che collega un nome di dominio al proprio IP. Guarda come riferimento il seguente screenshot dal provider DNS no-ip.com.

Creazione del nostro DNS A Record

I dati da completare, come prevedibile, sono il nome DNS e l'IP. No-IP è proprio ciò di cui abbiamo bisogno per illustrare la creazione di un dominio, ma probabilmente hai o sceglierai un altro provider DNS. Il processo è abbastanza simile in tutti loro.

La propagazione del nuovo record richiede del tempo, quindi è possibile utilizzare il ping per verificare se l'IP è stato risolto correttamente:

ping redminek8s.ddns.net

Prossimi passi

Ora che abbiamo un controller di ingresso e un dominio DNS, l'unica cosa rimasta è configurare HTTPS per il nostro sito e installare Redmine. Useremo PostgreSQL come nostro database, ma vedrai quanto è facile configurare tutto usando Helm.

Resta sintonizzato per Redmine in Kubernetes Parte 2: installazione di Redmine.

Autore: Leandro Cofre, Lukáš Beňa

Informazioni aggiuntive
Prova gratuita

Facile aggiornamento di Redmine 10
Top plugin e funzionalità
Nuovo e design mobile
Aggiornamenti del server
Nube globale

Inizia la prova gratuita

Prova Easy Redmine in una prova gratuita di 30 giorni

Full-featured, 30 Days, protetti da SSL, backup giornalieri, nella tua posizione geo

or