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 2: Installazione di Redmine

Questa è una seconda parte della serie distribuire 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 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'attività banale, poiché è necessario acquistare un certificato e caricarlo sul proprio sito, rinnovandolo dopo un certo tempo e ripetendo il processo. Cert-manager automatizza tutto ciò, incluso il rinnovo di certificati, e ottiene persino 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 fornitore di certificati di nostra scelta. Useremo LetsEncrypt, un'autorità di certificazione gratuita. Crea prima questo file (ricordati di sostituire <your-email-address> con un vero indirizzo e-mail) 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: <your-email-address>

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

RedmineUsername: adminUser

RedminePassword: <my-password>

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

databaseType: postgresql

MariaDB:

abilitato: falso

PostgreSQL:

abilitato: vero

postgresql Database: Redmine

postgresql Nome utente: Redmine

postgresqlPassword: <some-safe-password>

Dobbiamo dire esplicitamente alla nostra installazione che non vogliamo che mariadb sia installato 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: true

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 pods --watch

Il comando restituirà qualcosa di simile a questo:

NOME STATO PRONTO RIAVVIA ETÀ

. . .

redmine-999c68dd9-x7h2k 1/1 In esecuzione 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 lasciato alcuni concetti fuori discussione perché erano complessi o la spiegazione era specifica per il cloud. Tra questi ci sono la vitalità e la prontezza della tua applicazione, la configurazione della posta in arrivo e il ridimensionamento per gestire più carico. Fateci sapere di seguito ciò che vi interessa di più in modo che possiamo discuterne in un futuro how-to.

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