This is automatic translation. If you do not like it, switch to English or another language. Thank you for understanding. OK Show original
Treść

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

To jest druga część serii o wdrażanie Redmine w Kubernetes. W tym artykule zapewnimy instrukcje dotyczące wdrażania niezawodnej instalacji 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 Ingress Controller, komponent przekierowujący żądania internetowe w klastrze, i utworzyliśmy domenę dns, redminek8s.ddns.net. Teraz musimy tylko 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 pewnym czasie i powtarzając proces. Cert-manager automatyzuje to wszystko, w tym odnawianie certyfikatów, a nawet otrzymuje bezpłatne certyfikaty. Możesz zobaczyć więcej informacji na temat 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. Użyjemy LetsEncrypt, bezpłatnego urzędu certyfikacji. Najpierw utwórz ten plik (pamiętaj, aby zastąpić adres <adres e-mail> prawdziwym adresem e-mail) i nazwij go klaster-emitent.yaml

apiVersion: cert-manager.io/v1alpha2

rodzaj: ClusterIssuer

metadane:

nazwa: letsencrypt

specyfikacja:

kulminacja:

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

email: <adres e-mail>

privateKeySecretRef:

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

RedmineUsername: adminUser

RedminePassword: <moje- hasło>

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

postgresqlDatabase: Redmine

postgresqlUsername: Redmine

postgresqlPassword: <some-safe-password>

Musimy wyraźnie powiedzieć naszej instalacji, że nie chcemy, aby mariadb był instalowany 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: true

nazwa hosta: redminek8s.ddns.net

tls: prawda

adnotacje:

kubernetes.io/ingress.class: nginx

cert-manager.io/cluster-issuer: letsencrypt

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:

NAZWA GOTOWOŚĆ RESTARTS STATUS AGE

. . .

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

redmine-postgresql-0 1/1 Running 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.

Część dyskusji pominęliśmy, ponieważ były skomplikowane lub wyjaśnienie dotyczyło chmury. Należą do nich żywotność i gotowość aplikacji, konfiguracja poczty przychodzącej oraz skalowanie w celu obsługi większego obciążenia. Daj nam znać poniżej, co Cię najbardziej interesuje, abyśmy mogli porozmawiać o tym w przyszłości.

Autor: Leandro Cofre, Lukáš Beňa

Dodatkowe informacje
Free Trial

Łatwy upgrade Redmine 10
Najlepsze wtyczki i funkcje
Nowy i mobilny projekt
Uaktualnienia serwera
Globalna chmura

Zacznij Free Trial

Wypróbuj Easy Redmine w 30-dniowej bezpłatnej wersji próbnej

Pełne, 30 Dni, chronione przez SSL, codzienne archiwizacje, w Twojej lokalizacji geograficznej

or