w Kubernetes – Część 2: Instalace Redmine

6/30/2020
8 minut
Lukáš Beňa -> Łukasz Beňa

To jest druga część serii dotyczącej wdrażania Redmine w Kubernetes. W tym artykule przedstawimy instrukcje dotyczące wdrażania niezawodnej instalacji Redmine.

Przeliczenie części 1

Teraz musisz z niecierpliwością czekać na instalację Redmine na Kubernetes. W końcu o to przyszedłeś, prawda?

W Redmine na Kubernetes - Część 1: Przygotowanie środowiska zainstalowaliśmy kontroler Ingress, komponenta do przekierowywania żądań internetowych wewnątrz klastra, a utworzyliśmy domenę DNS, redminek8s.ddns.net. Nyní musí být skonfigurováno HTTPS a je nyní možné použít Redmine.


HTTPS z cert-manager

Chociaż moglibyśmy zachować nasz Redmine jako HTTP, HTTPS jsou standardem dla stron internetowych, tak bardzo, że większość przeglądarek ostrzega Cię o problemach z bezpieczeństwem, gdy strona nie korzysta z HTTPS.

Zazwyczaj włączenie HTTPS nie je to trywialnym zadaniem, ponieważ musisz kupić certyfikat i przesłać go na swoją stronę, odnawiając go po określonym czasie i powtarzając process. Cert-manager automatyzuje to wszystko, w tym odnawianie certyfikatów, a nawet uzyskuje darmowe certyfikaty. Więcej informacji znajdziesz na jejich straně, ale wyjaśnię Ci wszystko, co musisz wiedzieć poniżej.


Zainstalujte cert-manager

Wykonaj następujące kroki, aby zainstalować cert-manager w swoim klastrze:

kormidlo repo přidat jetstack https://charts.jetstack.io && Helm repo update

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

Najpierw dodajesz repozytorium, w którym znajduje się cert-manager, a następnie instalujesz jeho najnowszą wersję.


Połącz z dostawcą certyfikatów

Teraz musimy poinstruować cert-manager, aby połączył się z wybranym przez nas dostawcą certyfikatów. Skorzystamy z LetsEncrypt, darmowego dostawcy certyfikatów. Najpierw utwórz ten plik (pamiętaj, aby zastąpić prawdziwym adrese e-mail) i nazwij go cluster-issuer.yaml

apiVersion: cert-manager.io/v1alpha2

druh: ClusterIssuer

metadata:

  jméno: letsencrypt

spec:

  vrchol:

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

    e-mailem:

    privateKeySecretRef:

      jméno: letsencrypt

    řešitelé:

    - http01:

        vstup:

          třída: nginx

Następnie zastosuj go do swojego klastra za pomocą

kubectl apply -f cluster-emiter.yaml

Gratulacje! Powyższy plik to pierwsza konfiguracja kubernetes, którą piszemy i stosujemy w klastrze. Możesz zauważyć, że pokazuje, jak połączyć się z LetsEncrypt, ale popisuje również kontroler Ingress, który utworzyliśmy w Części 1 (klasa: nginx na końcu). Ten rodzaj konfiguracji ma kilka linii z odstępami, aby wskazać zależność niektórych właściwości od innych. Zachowaj te odstępy, jak pokazano, aby zapewnić, że plik zostanie odczytany i zastosowany poprawnie.

Teraz Twój klaster obsługuje HTTPS. Za każdym razem, gdy instalujemy aplikację, możemy ją instruować, aby działała z HTTPS i voilà! Cały proces uzyskania certyfikatu zostanie wykonany automatycznie w tle.


Instalace Redmine

To jest to, na co wszyscy czekaliśmy. Możemy zainstalować Redmine na kilka różnych sposobów, ale zdecydowanie najwygodniejszym jest użycie Helm. Jak już wcześniej zrobiliśmy, najpierw dodajemy repozytorium, w którym znajduje się Redmine

kormidlo repo přidat bitnami https://charts.bitnami.com/bitnami && Helm repo update

Ale tym razem zamiast instalować od razu, stworzymy plik konfiguracyjny, aby wskazać niektóre niestandardowe zachowanie, które chcemy, aby Redmine miał.

Rozdzielimy wszystkie konfiguracje na własne sekcje, ale umieścimy je wszystkie w tym samym pliku, jeden po drugim. Nazwij plik values.yaml.

Wszystkie aplikacje Helm mają plik values.yaml z wszystkimi możliwymi konfiguracjami, które można wprowadzić do aplikacji. Gdy tworzymy własny plik values.yaml, definiujemy zmiany, które chcemy wprowadzić. Wartości, który nie uwzględniamy w naszym pliku, pozostaną takie same jak w pliku domyślnym.

Wszystkie wartości domyślne można również znaleźć na stronie aplikacji Helm, https://hub.helm.sh/charts/bitnami/redmine. Sprawdź wszystkie konfiguracje.


Pierwszy użytkownik admin

RedmineUživatelské jméno: adminUser

RedmineHeslo:

Ten krok jest równie konieczny, co łatwy do zrozumienia. To nasz pierwszy użytkownik w Redmine, którego będziemy używać do pierwszego logowania.

Po zainstalowaniu Redmine będziesz mógł uzyskać do niego dostęp z tohoto użytkownikiem, aby skonfigurować swoją całkowicie nową instalację.


Baza danych PostgreSQL

Domyślnie nasza instalacja Helm będzie wymagała utworzenia bazy danych mariadb. Zamiast tego skonfigurujemy naszą instalację do korzystania z PostgreSQL. Musisz również dodać co najmniej hasło, aby uzyskać dostęp do tej bazy danych, jak możesz zobaczyć poniżej

typ databáze: postgresql

mariadb:

  povoleno: false

postgresql:

  povoleno: true

  PostgresqlDatabase: Redmine

  postgresqlUživatelské jméno: Redmine

  postgresqlHeslo:

Musimy wyraźnie powiedzieć naszej instalacji, że nie chci, aby MariaDB była instalowana razem z konfiguracją dla bazy danych PostgreSQL.


Konfigurace nazwy DNS

Poniższa konfiguracja jest drugą stroną konfiguracji DNS, którą wykonaliśmy w części 1. Jak widać, włączamy TLS, protokół za HTTPS, i ustawiamy nazwę hosta, którą użyliśmy podczas tworzenia naszego rekord

vstup:

  povoleno: true

  certManager: pravda

  název hostitele: redminek8s.ddns.net

  tls: pravda

  anotace:

    kubernetes.io/ingress.class: nginx

    cert-manager.io/cluster-issuer: letsencrypt

Także w ostatnich dwóch liniach łączymy naszą aplikację z kontrolerem Ingress iz wydawcą klastra, który utworzyliśmy wcześniej.

Nyní může být Redmine z naší standardní konfigurace:

helm install Redmine -f hodnoty.yaml bitnami / redmine

Ta linia jest podobna do innych linii instalacji helm, które używaliśmy wcześniej, ale tym razem dostarczamy niestandardowy plik values.yaml. To sposób na dostosowanie dowolnej aplikacji Helm.

Potrzebujemy jeszcze trochę cierpliwości, ponieważ tworzenie aplikacji zajmuje trochę czasu. Możesz wykonać ten polecenie, aby sprawdzić stan kontenerów Twojej aplikacji:

kubectl get lusky - hodinky

Polecenie zwróci coś podobněgo do tego:

STAV JMÉNA PŘIPRAVENO VĚC RESTARTUJE

. . .

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

redmine-postgresql-0 1/1 Běh 0 6m40s

Musisz poczekać, aż status dla obu kontenerów będzie Running i wszystkie będą gotowe 1/1, co w moim przypadku zajęło około 6 minut.

Teraz wszystko jest gotowe, aby otworzyć przeglądarkę i przejść do naszej nowej instalacji:

Redmine je dobrý


Souhrn

Kubernetes to narzędzie o złożonej strukturze do wdrażania aplikacji, ale poradziliśmy sobie z tą złożonością dzięki pomocy Helm (bez żartów) i wdrożyliśmy niezawodną instalację Redmine.

Podsumowanie tego poradnika znajdziesz w następującym repozytorium git: https://github.com/lcofre/redmine-on-k8s. Zachęcamy do porównania z Twoimi plikami, jeśli utkniesz.

Pozostawiliśmy kilka koncepcji poza dyskusją, ponieważ były one złożone lub wyjaśnienie było związane z chmurą. Wśród nich są żywotność i gotowość Twojej aplikacji, konfiguracja przychodzących wiadomości e-mail oraz skalowanie w celu obsługi większego obciążenia. Prosimy o podanie w komentarzach, co Cię najbardziej interesuje, abyśmy mogli omówić to w przyszłym poradniku.

Nejlépe aktualizacja Redmine? latwa.

Zdobądź wszystkie potężne narzędzia do doskonałego planowania, zarządzania i kontroli projektów w jednym oprogramowaniu.

Připravte Easy Redmine před 30 dny za darmo

Pełne funkcje, zabezpieczenie SSL, codzienne kopie zapasowe, dostępne w Twojej lokalizacji