en
Lingua
  • en
  • de
  • fr
  • es
  • br
  • ru
  • jp
  • kr
traduzione AI
  • ae
  • cn
  • vn
  • id
  • eu
  • il
  • gr
  • no
  • fi
  • dk
  • se
  • tr
  • bg
  • nl
  • it
  • pl
  • hu
  • ro
  • ua
  • cs

Redmine in Kubernetes – Parte 1: Preparazione dell'ambiente

6/22/2020
6 minuti
Lukaš Beňa

In questa serie in due parti, implementeremo 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 PORTA / E IP ESTERNO ETÀ

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

Controller-ammissione ClusterIP 10.0.135.226 443 / TCP 5m22s

Kubernetes ClusterIP 10.0.0.1 443 / TCP 44h

Prendi nota dell'IP ESTERNO poiché ne avremo bisogno nel passaggio successivo. Potrebbe accadere che invece di un IP il valore che ottieni lì sia . 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:

eseguire il ping di 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.

L'ultimo aggiornamento di Redmine? Facile.

Ottieni tutti gli strumenti potenti per una perfetta pianificazione, gestione e controllo del progetto in un unico software.

Prova Easy Redmine in 30 giorni di prova gratuita

Funzionalità complete, protezione SSL, backup giornalieri, nella tua geolocalizzazione