Redmine w Kubernetes - Część 2: Instalowanie Redmine
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.