en
Wybierz język
  • en
  • de
  • fr
  • es
  • br
  • ru
  • jp
  • kr
Tłumaczenie SI
  • ee
  • ae
  • cn
  • vn
  • id
  • eu
  • il
  • gr
  • no
  • fi
  • dk
  • se
  • tr
  • bg
  • nl
  • it
  • pl
  • hu
  • ro
  • ua
  • cs

Redmine w Kubernetes - Część 2: Instalowanie Redmine

6/30/2020
8 minut
Łukasz Beňa

To druga część serii poświęconej wdrożeniu Redmine w Kubernetes. W tym artykule przedstawimy instrukcje, jak wdrożyć niezawodną instalację Redmine.

Relacja z części 1

Do tej pory nie możesz się doczekać instalacji Redmine na Kubernetes. W końcu po to przyszedłeś, prawda?

In Redmine in Kubernetes - Część 1: Przygotowanie środowiska, zainstalowaliśmy kontroler Ingress, składnik do przekierowywania żądań internetowych w klastrze, i utworzyliśmy domenę DNS, redminek8s.ddns.net. Teraz wystarczy skonfigurować HTTPS i jesteśmy gotowi do wdrożenia Redmine.


HTTPS z menedżerem certyfikatów

Chociaż możemy zachować naszą Redmine jako HTTP, HTTPS stał się standardem dla stron internetowych, do tego stopnia, że ​​większość przeglądarek ostrzega o problemie z bezpieczeństwem, gdy strona internetowa nie używa HTTPS.

Zazwyczaj włączenie HTTPS nie jest trywialnym zadaniem, ponieważ musisz kupić certyfikat i przesłać go do swojej witryny, odnawiając go po określonym czasie i powtarzając proces. Cert-manager automatyzuje to wszystko, w tym odnawianie certyfikatów, a nawet uzyskuje bezpłatne certyfikaty. Możesz zobaczyć więcej informacji na Ich miejscu, ale wyjaśnię wszystko, co musisz wiedzieć dalej.


Zainstaluj menedżera certyfikatów

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

repozytorium sterów dodaje jetstack https://charts.jetstack.io Aktualizacja repozytorium sterów &&

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

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


Połącz się z urzędem certyfikacji

Teraz musimy poinstruować menedżera certyfikatów, aby połączyć się z wybranym przez nas dostawcą certyfikatu. Będziemy używać LetsEncrypt, bezpłatnego urzędu certyfikacji. Utwórz najpierw ten plik (pamiętaj, aby zastąpić prawdziwym adresem e-mail) i nadaj mu nazwę cluster-issuer.yaml

Wersja api: cert-manager.io/v1alpha2

rodzaj: ClusterIssuer

metadane:

  nazwa: letsencrypt

specyfikacja:

  kulminacja:

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

    e-mail:

    prywatnyKeySecretRef:

      nazwa: letsencrypt

    solwery:

    - http01:

        ingres:

          klasa: nginx

Następnie zastosuj go do swojego klastra za pomocą

kubectl stosuje -f klaster-emiter.yaml

Gratulacje! Powyższy plik to pierwsza konfiguracja kubernetes, którą piszemy i stosujemy do klastra. Być może zauważyłeś, że pokazuje, jak połączyć się z LetsEncrypt, ale opisuje także kontroler Ingress, który utworzyliśmy w Części 1 (klasa: nginx na końcu). Ten typ konfiguracji ma kilka wierszy ze spacjami, aby wskazać zależność niektórych właściwości od inni Zachowaj te spacje, jak pokazano, aby zapewnić prawidłowe odczytanie i zastosowanie pliku.

Teraz Twój klaster obsługuje HTTPS. Ilekroć instalujemy aplikację, możemy poinstruować ją, aby współpracowała z HTTPS i voilà! Cały proces uzyskiwania certyfikatu odbywa się automatycznie za kulisami.


Instalowanie Redmine

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

repozytorium sterów dodaj bitnami https://charts.bitnami.com/bitnami Aktualizacja repozytorium sterów &&

Ale tym razem zamiast instalować od razu utworzymy plik konfiguracyjny, aby wskazać pewne niestandardowe zachowanie, które chcemy mieć w Redmine.

Rozdzielimy wszystkie konfiguracje na osobnych sekcjach, ale umieścisz je wszystkie w tym samym pliku, jeden po drugim. Wywołaj plik values.yaml.

Wszystkie aplikacje Helm mają plik values.yaml ze wszystkimi możliwymi konfiguracjami, które można wykonać w aplikacji. Tworząc własne wartości. Yaml definiujemy pożądane zmiany. Każda wartość, której nie uwzględnimy w naszym pliku, pozostanie taka, jak w pliku domyślnym.

Wszystkie wartości domyślne można również znaleźć na stronie aplikacji steru, https://hub.helm.sh/charts/bitnami/redmine. Śmiało i sprawdź wszystkie konfiguracje.


Pierwszy administrator

Redmine Nazwa użytkownika: adminUser

RedminePassword:

Ten krok jest tak konieczny, jak łatwy do zrozumienia. To nasz pierwszy użytkownik w Redmine, ten, którego użyjemy do pierwszego logowania.

Po zainstalowaniu Redmine będziesz mógł uzyskać do niego dostęp za pomocą tego użytkownika, aby skonfigurować nową instalację.


Baza danych PostgreSQL

Domyślnie nasza instalacja Helm wymaga 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 widać poniżej

DatabaseType: postgresql

mariadb:

  włączone: fałsz

postgresql:

  włączone: prawda

  postgresqlBaza danych: Redmine

  postgresqlNazwa użytkownika: Redmine

  postgresqlPassword:

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


Konfiguracja nazwy DNS

Poniższa konfiguracja to druga strona konfiguracji DNS, którą wykonaliśmy w Części 1. Jak widać, włączamy TLS, protokół stojący za HTTPS i ustawiamy nazwę hosta, której używaliśmy podczas tworzenia naszego rekordu DNS:

ingres:

  włączone: prawda

  certManager: prawda

  nazwa hosta: redminek8s.ddns.net

  tls: prawda

  adnotacje:

    kubernetes.io/ingress.class: nginx

    cert-manager.io/cluster-issuer: Letencrypt

Również w dwóch ostatnich wierszach łączymy naszą aplikację z kontrolerem Ingress oraz z utworzonym wcześniej programem Emitenta klastrów.

Teraz możemy wdrożyć Redmine z naszą niestandardową konfiguracją:

ster instaluje Redmine -f values.yaml bitnami / redmine

Ta linia jest podobna do innych linii instalacyjnych steru, których używaliśmy wcześniej, ale tym razem zapewniamy niestandardowe wartości. Yaml. Jest to sposób na dostosowanie dowolnej aplikacji Helm.

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

kubectl dostać strąki - zegarek

Polecenie zwróci coś podobnego do tego:

IMIĘ IMIĘ GOTOWY STATUS WZNOWUJE WIEK

. . .

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

redmine-postgresql-0 1/1 Bieganie 0 6m40s

Musisz poczekać, aż status obu kontenerów będzie działał 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 naszego nowego wdrożenia:

Redmine jest gotowy


Zamykając

Kubernetes jest złożonym narzędziem do wdrażania aplikacji, ale nawigowaliśmy przez tę złożoność za pomocą Helma (bez zamierzonej gry słów) i wdrożyliśmy niezawodną instalację Redmine.

Podsumowanie tego poradnika można znaleźć w następującym repozytorium git: https://github.com/lcofre/redmine-on-k8s. Jeśli utkniesz, możesz porównać z plikami.

Niektóre koncepcje nie zostały uwzględnione w dyskusji, ponieważ były złożone lub wyjaśnienie dotyczyło chmury. Wśród nich są żywotność i gotowość aplikacji, konfiguracja przychodzących wiadomości e-mail i skalowanie w celu obsługi większego obciążenia. Daj nam znać poniżej, co Cię najbardziej interesuje, abyśmy mogli omówić to w przyszłości.

Najlepsza aktualizacja Redmine? Łatwo.

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

Wypróbuj Easy Redmine w 30-dniowym bezpłatnym okresie próbnym

Pełne funkcje, ochrona SSL, codzienne kopie zapasowe w Twojej geolokalizacji