Redmine в Kubernetes - Част 2: Инсталиране на Redmine
Това е втората част от поредицата за внедряване на Redmine в Kubernetes. В тази статия ще предоставим инструкции как да разположите надеждна инсталация на Redmine.
Преизчисляване на част 1
Вече трябва да очаквате с нетърпение инсталацията на Redmine на Kubernetes. В крайна сметка, за това сте дошли, нали?
In Redmine in Kubernetes - Част 1: Подготовка на околната среда, инсталирахме Ingress Controller, компонент за пренасочване на интернет заявки във вашия клъстер, и създадохме DNS домейн, redminek8s.ddns.net. Сега трябва само да конфигурираме HTTPS и сме готови да разположим Redmine.
HTTPS с cert-мениджър
Въпреки че бихме могли да запазим Redmine като HTTP, HTTPS се превърна в стандарт за уебсайтове, дотолкова, че повечето браузъри ви предупреждават за проблем със сигурността, когато HTTPS не се използва от уебсайт.
Обикновено активирането на HTTPS не е тривиална задача, тъй като трябва да закупите сертификат и да го качите на сайта си, като го подновите след определено време и повторите процеса. Cert-manager автоматизира всичко това, включително подновяването на сертификати, и дори получава безплатни сертификати. Можете да видите повече информация на Техния сайт, но след това ще ви обясня всичко, което трябва да знаете.
Инсталирайте cert-manager
Изпълнете следните стъпки, за да инсталирате cert-manager във вашия клъстер:
helm repo добави jetstack https://charts.jetstack.io && helm repo update
helm install cert-manager jetstack / cert-manager --set installCRDs = true
Първо добавяте хранилището, където е cert-manager, и след това инсталирате последната му версия.
Свържете се със сертифициращия орган
Сега трябва да инструктираме cert-manager да се свърже с избрания от нас доставчик на сертификати. Ще използваме LetsEncrypt, безплатен сертифициращ орган. Създайте този файл първо (не забравяйте да замените с реален имейл адрес) и го кръстете cluster-issuer.yaml
apiВерсия: cert-manager.io/v1alpha2
вид: ClusterIssuer
метаданни:
име: letsencrypt
спец:
Acme:
сървър: https://acme-v02.api.letsencrypt.org/directory
електронна поща:
privateKeySecretRef:
име: letsencrypt
решават:
- http01:
проникване:
клас: nginx
След това го приложете към вашия клъстер с
kubectl прилагам -f cluster-issue.yaml
Честито! Файлът по-горе е първата конфигурация kubernetes, която пишем и прилагаме към клъстера. Може би сте забелязали, че тя показва как да се свържете с LetsEncrypt, но също така описва Ingress Controller, който създадохме в Част 1 (Класът: nginx в края) Този тип конфигурация има някои линии с интервали, които показват зависимост на някои свойства към др. Запазете тези интервали, както е показано, за да се гарантира, че файлът се чете и прилага правилно.
Сега вашият клъстер е активиран за HTTPS. Всеки път, когато инсталираме приложение, можем да го инструктираме да работи с HTTPS и готово! Целият процес на получаване на сертификата ще се извърши автоматично зад кулисите.
Инсталиране на Redmine
Това чакахме всички. Можем да инсталираме Redmine по няколко различни начина, но далеч най-удобният е използването на Helm. Както вече го направихме, първо добавяме хранилището, което е Redmine
helm repo добавете битнами https://charts.bitnami.com/bitnami && helm repo update
Но този път вместо да инсталираме веднага, ще създадем конфигурационен файл, за да покажем някакво персонализирано поведение, което искаме да имаме Redmine.
Ще разделим всички конфигурации в тяхната собствена секция, но вие ги поставяте в един и същ файл една след друга. Обадете се на файла values.yaml.
Всички Helm приложения имат файл value.yaml с всички възможни конфигурации, които могат да бъдат направени към приложението. Когато създаваме свои собствени values.yaml, ние определяме промените, които искаме. Всяка стойност, която не включваме в нашия файл, ще бъде оставена, както е във файла по подразбиране.
Всички стойности по подразбиране могат да бъдат намерени и на страницата на приложението за кормилото, https://hub.helm.sh/charts/bitnami/redmine, Продължете и проверете всички конфигурации.
Първият потребител на администратора
RedmineUsername: adminUser
Redmine Парола:
Тази стъпка е толкова необходима, колкото и лесна за разбиране. Това е първият ни потребител в Redmine, този, който ще използваме за влизане за първи път.
Когато Redmine е инсталиран, вие ще можете да получите достъп до него с този потребител, за да конфигурирате чисто новата си инсталация.
PostgreSQL база данни
По подразбиране нашата инсталация на Helm ще изисква създаване на база данни за mariadb. Вместо това ще конфигурираме нашата инсталация, за да използваме PostgreSQL. Трябва също да добавите поне парола за достъп до тази база данни, както можете да видите по-долу
Тип на базата данни: postgresql
mariadb:
активиран: false
PostgreSQL:
активиран: вярно
postgresql База данни: Redmine
postgresqlИме на потребителя: Redmine
postgresqlPassword:
Трябва изрично да кажем на нашата инсталация, че не искаме MariaDB да се инсталира заедно с конфигурацията за базата данни PostgreSQL.
Конфигурация на име на DNS
Конфигурацията по-долу е другата страна на DNS конфигурацията, която направихме в Част 1. Както можете да видите, ние активираме TLS, протокола зад HTTPS и задаваме името на хоста, което използвахме при създаването на нашия DNS запис:
проникване:
активиран: вярно
certManager: вярно
име на хост: redminek8s.ddns.net
tls: вярно
анотации:
kubernetes.io/ingress.class: nginx
cert-manager.io/cluster-issuer: letsencrypt
Също в последните два реда свързваме нашето приложение с контролера Ingress и с издателя на клъстери, който създадохме преди.
Сега можем да внедрим Redmine с нашата персонализирана конфигурация:
кормило инсталирайте Redmine -f values.yaml bitnami / redmine
Тази линия е подобна на други линии за инсталиране на кормилници, които използвахме преди, но този път предоставяме персонализирани стойности.yaml. Това е начинът да персонализирате всяко приложение на Helm.
Нуждаем се от още малко търпение, тъй като създаването на приложението отнема известно време. Можете да изпълните тази команда, за да проверите състоянието на контейнерите си за приложения:
kubectl вземете шушулки - гледайте
Командата ще върне нещо подобно на това:
ИМЕ ГОТОВ СТАТУС ВЪЗСТАНОВЯВА ВЪЗРАСТ
. . .
redmine-999c68dd9-x7h2k 1/1 Running 0 6m40s
redmine-postgresql-0 1/1 Работи 0 6m40s
Трябва да изчакате, докато състоянието и за двата контейнера се изпълни и всички са готови 1/1, което в моя случай отне около 6 минути.
Сега всичко е готово за отваряне на браузъра и преминаване към новото ни внедряване:
Redmine е готов
Завършвайки
Kubernetes е сложен инструмент за разгръщане на приложения, но ние се придвижвахме през тази сложност с помощта на Helm (без каламбур) и разполагахме надеждна инсталация на Redmine.
Можете да намерите резюме на това ръководство в следното git repo: https://github.com/lcofre/redmine-on-k8s, Чувствайте се свободни да сравнявате с вашите файлове, ако се забиете.
Оставихме някои концепции извън дискусията, защото бяха сложни или обяснението беше специфично за облака. Сред тях са жизнеността и готовността на вашето приложение, конфигурацията на входящите имейли и мащабирането за по -голямо натоварване. Моля, уведомете ни по-долу какво ви интересува най-много, за да можем да го обсъдим в бъдеще.
Най -добрият ъпгрейд на Redmine? Лесно.
Вземете всички мощни инструменти за перфектно планиране, управление и контрол на проекти в един софтуер.