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

Redmine in Kubernetes - Parte 2: Installazione di Redmine

6/30/2020
8 minuti
Lukaš Beňa

Questa è la seconda parte della serie sull'implementazione di Redmine in Kubernetes. In questo articolo, forniremo istruzioni su come distribuire un'installazione affidabile di Redmine.

Raccontare la parte 1

Ormai non vedrai l'ora di installare Redmine su Kubernetes. Dopo tutto, è per questo che sei venuto, giusto?

In Redmine in Kubernetes - Parte 1: Preparazione dell'ambiente, abbiamo installato Ingress Controller, un componente per reindirizzare le richieste Internet all'interno del tuo cluster, e abbiamo creato un dominio DNS, redminek8s.ddns.net. Ora dobbiamo solo configurare HTTPS e siamo pronti per distribuire Redmine.


HTTPS con cert-manager

Sebbene potremmo mantenere il nostro Redmine come HTTP, HTTPS è diventato lo standard per i siti Web, tanto che la maggior parte dei browser ti avvisa di un problema di sicurezza quando HTTPS non viene utilizzato da un sito Web.

In genere abilitare HTTPS non è un compito banale, in quanto è necessario acquistare un certificato e caricarlo sul proprio sito, rinnovarlo dopo un certo tempo e ripetere il processo. Cert-manager automatizza tutto questo, compreso il rinnovo dei certificati, e ottiene anche certificati gratuiti. Puoi vedere maggiori informazioni su il loro sito, ma ti spiegherò tutto ciò che devi sapere dopo.


Installa cert-manager

Eseguire i passaggi seguenti per installare cert-manager nel cluster:

helm repo aggiungi jetstack https://charts.jetstack.io && helm repo update

helm install cert-manager jetstack / cert-manager --set installCRDs = true

Per prima cosa aggiungi il repository dove si trova cert-manager, quindi installa la versione più recente.


Connettersi all'autorità di certificazione

Ora dobbiamo istruire cert-manager a connettersi al provider di certificati di nostra scelta. Useremo LetsEncrypt, un'autorità di certificazione gratuita. Crea prima questo file (ricorda di sostituire con un indirizzo email reale) e chiamalo cluster-issuer.yaml

apiVersion: cert-manager.io/v1alpha2

tipo: ClusterIssuer

metadati:

  nome: letsencrypt

spec:

  acme:

    Server: https://acme-v02.api.letsencrypt.org/directory

    e-mail:

    PrivateKeySecretRef:

      nome: letsencrypt

    risolutori:

    -http01:

        ingresso:

          classe: nginx

Quindi applicalo al tuo cluster con

kubectl applicare -f cluster-issuer.yaml

Congratulazioni! Il file sopra è la prima configurazione di kubernet che scriviamo e applichiamo al cluster. Potresti aver notato che mostra come connettersi a LetsEncrypt, ma descrive anche il controller Ingress che abbiamo creato nella Parte 1 (La classe: nginx alla fine) Questo tipo di configurazione ha alcune linee con spazi per indicare la dipendenza di alcune proprietà da altri. Mantenere gli spazi come mostrato per assicurarsi che il file sia letto e applicato correttamente.

Ora il tuo cluster è abilitato HTTPS. Ogni volta che installiamo un'applicazione, possiamo insegnare a lavorare con HTTPS e voilà! L'intero processo di ottenimento del certificato verrà eseguito automaticamente dietro le quinte.


Installazione di Redmine

Questo è quello che stavamo tutti aspettando. Possiamo installare Redmine in diversi modi, ma di gran lunga il più conveniente è usare Helm. Come abbiamo già fatto, per prima cosa aggiungiamo il repository dove Redmine lo è

helm repo aggiungi bitnami https://charts.bitnami.com/bitnami && helm repo update

Ma questa volta invece di installare subito creeremo un file di configurazione, per indicare un comportamento personalizzato che desideriamo avere Redmine.

Separeremo tutte le configurazioni nella loro sezione ma le inserirai tutte nello stesso file, una dopo l'altra. Chiama il file valori.yaml.

Tutte le applicazioni Helm hanno un file valor.yaml con tutte le possibili configurazioni che possono essere fatte all'applicazione. Quando creiamo i nostri valori.yaml definiamo i cambiamenti che vogliamo. Qualsiasi valore che non includiamo nel nostro file verrà lasciato così com'è nel file predefinito.

Tutti i valori predefiniti sono disponibili anche nella pagina dell'applicazione del timone, https://hub.helm.sh/charts/bitnami/redmine. Vai avanti e controlla tutte le configurazioni.


Primo utente amministratore

Nome utente redmine: utente admin

RedminePassword:

Questo passaggio è tanto necessario quanto facile da capire. È il nostro primo utente su Redmine, quello che useremo per accedere per la prima volta.

Quando Redmine è installato, sarai in grado di accedervi con questo utente per configurare la tua nuova installazione.


Database PostgreSQL

Per impostazione predefinita, la nostra installazione di Helm richiederà la creazione di un database mariadb. Configureremo invece la nostra installazione per utilizzare PostgreSQL. Devi anche aggiungere almeno una password per accedere a questo database, come puoi vedere di seguito

tipo di database: postgresql

MariaDB:

  abilitato: falso

PostgreSQL:

  abilitato: vero

  postgresql Database: Redmine

  postgresql Nome utente: Redmine

  postgresqlPassword:

Dobbiamo dire esplicitamente alla nostra installazione che non vogliamo che MariaDB sia installata insieme alla configurazione per il database PostgreSQL.


Configurazione del nome DNS

La configurazione seguente è l'altra faccia della configurazione DNS che abbiamo fatto nella Parte 1. Come puoi vedere abilitiamo TLS, il protocollo dietro HTTPS e impostiamo il nome host che abbiamo usato durante la creazione del nostro record DNS:

ingresso:

  abilitato: vero

  certManager: vero

  nome host: redminek8s.ddns.net

  tls: vero

  annotazioni:

    kubernetes.io/ingress.class: nginx

    cert-manager.io/cluster-issuer:letsencrypt

Anche nelle ultime due righe colleghiamo la nostra applicazione con Ingress Controller e con l'Emittente cluster che abbiamo creato in precedenza.

Ora possiamo implementare Redmine con la nostra configurazione personalizzata:

helm installa Redmine -f valori.yaml bitnami / redmine

Quella linea è simile alle altre linee di installazione del timone che abbiamo usato prima, ma questa volta forniamo un valore.yaml personalizzato. Questo è il modo di personalizzare qualsiasi applicazione Helm.

Abbiamo ancora bisogno di un po 'più di pazienza, poiché la creazione dell'applicazione richiede del tempo. È possibile eseguire questo comando per verificare lo stato dei contenitori dell'applicazione:

kubectl get pod --watch

Il comando restituirà qualcosa di simile a questo:

NOME READY STATUS RIAVVIA L'ETÀ

. . .

redmine-999c68dd9-x7h2k    1/1     Running   0          6m40s

redmine-postgresql-0 1/1 In esecuzione 0 6m40s

Devi aspettare fino a quando lo stato di entrambi i contenitori è In esecuzione e tutti sono pronti 1/1, che nel mio caso ha richiesto circa 6 minuti.

Ora tutto è pronto per aprire il browser e passare alla nostra nuova distribuzione:

Redmine è pronto


Concludendo

Kubernetes è uno strumento complesso per distribuire applicazioni, ma abbiamo navigato attraverso quella complessità con l'aiuto di Helm (non è previsto un gioco di parole) e abbiamo implementato un'installazione affidabile di Redmine.

È possibile trovare un riepilogo di questo how-to nel seguente repository git: https://github.com/lcofre/redmine-on-k8s. Sentiti libero di confrontarti con i tuoi file se rimani bloccato.

Abbiamo escluso alcuni concetti dalla discussione perché erano complessi o perché la spiegazione era specifica per il cloud. Tra questi ci sono la velocità e la prontezza della tua applicazione, la configurazione della posta in arrivo e la scalabilità orizzontale per gestire più carico. Facci sapere di seguito cosa ti interessa di più in modo che possiamo discuterne in un futuro how-to.

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