Redmine在Kubernetes中的部署-第1部分:准备环境

10/22/2023
6 минути
Лукаш Бена
在这个两部分的系列中,我们将把Redmine部署到Kubernetes中。我们将使用推荐的工具和实践,目标是在HTTPS上部署一个弹性的Redmine实例。

Разделихме това ръководство на две части, върху които първо да се съсредоточим инсталиране на инструментите и компонентите ще се използва внедряването на Redmine. Но не се притеснявайте за сложността. Дори и да сте нови за Kubernetes, това ще бъде обяснимо обяснение.

Това ръководство е написано да бъде облак агностично, така че нарочно оставихме всички споменавания за облака, който използвахме. Оставете коментар, ако можете да познаете облака, който сме използвали, и да ни кажете каква подробност го даде. Препоръчваме ви да използвате услугата Kubernetes, която вашият облак предлага, тъй като тя е добре интегрирана с други услуги, които вашият облак също предоставя.

Среди като microk8s или minikube не се разглеждат тук, тъй като изискват още конфигурация, която е извън обхвата на това ръководство. По-специално, нашата HTTPS конфигурация изисква нашият клъстер да има публичен IP.


Нека използваме Helm

Kubernetes е сложен инструмент за контейнерна оркестрация, Има много понятия, които трябва да се научим, за да започнем. За щастие за нас има проект, наречен Шлем което осигурява нивото на абстракция, от което се нуждаем. Със собствените си думи „Ако направихме нещата правилно, потребителите могат да инсталират Helm и след това за минути да инсталират висококачествени компоненти на рафта“

Оставяйки настрана причините за имената им (всичко това разказва историята на метафора, Шлем, Кубернети и Контейнери) кормило наистина опростява инсталацията като същевременно дава възможност за персонализиране на компонента според нашите нужди. Ще използваме Helm 3, последната им и още по-опростена версия.

Ако използвате облачната обвивка на вашия доставчик на облаци, има вероятност Helm 3 вече да е наличен, но ако не, можете да го инсталирате, следвайки ръководството, предоставено от Helm, helm.sh/docs/intro/install/, Необходимо е да влезете вече имате достъп до вашия клъстер от командния ред, който използвате. Вашият доставчик на облаци има ръководство как да направите това също.


Инсталирайте контролера на Ingress

Това е първият компонент, който ще инсталираме в нашия клъстер и е също така първата концепция на kubernetes, която ще видим. Контролерът на Ingress седи на входната врата на вашия клъстер, получава всички уеб заявки и ги пренасочва към вътрешния компонент, отговорен за отговора на заявката. Първоначално няма да има никой готов да отговори, но когато инсталираме Redmine, той ще бъде добавен като дестинация за заявките.

Kubernetes предоставя NGINX Contress Controller ще използваме. Тяхната документация обяснява как да го инсталирате с помощта на Helm:

helm repo добавете ingress-nginx https://kubernetes.github.io/ingress-nginx && helm repo update

helm инсталирате входящ контролер ingress-nginx / ingress-nginx

Първата команда добавя хранилището на приложения, където е входящият контролер, докато втората го инсталира във вашия клъстер. Когато приключите, командата ще отпечата някои данни, за да започнете, включително как да започнете публичния IP, зададен на контролера:

kubectl получите услуги - гледайте

Резултатът ще бъде нещо подобно на това:

ИМЕ ТИП КЛАСТЪР-IP ВЪНШЕН-IP ПОРТ (И) ВЪЗРАСТ

nginx-контролер LoadBalancer 10.0.115.117 89.68.23.33 80 / TCP, 443 / TCP 5m22s

клъстер за прием на контролер IP 10.0.135.226 443 / TCP 5m22s

kubernetes ClusterIP 10.0.0.1 443 / TCP 44ч

Обърнете внимание на EXTERNAL-IP, тъй като ще ни е необходим в следващата стъпка. Може да се случи вместо IP да е стойността, която получавате там . Отнема известно време за облака за да получите публичен IP и да го присвоите на вашия клъстер, Просто изчакайте още няколко секунди и IP-то трябва да е достъпно.


Създайте DNS запис

Сега, когато имате IP, можете просто да отидете в браузър и да видите как вашият клъстер отговаря на вас. Разбира се, тъй като все още не е инсталирано приложение, вашият клъстер ще отговори с грешка „404 не е намерен“. Ще създадем DNS домейн, който можем да свържем с този IP, надяваме се, по-лесно да се запомнят от списък с числа и точки.

Начинът за създаване на интернет домейн за вашия Redmine зависи много от вашия доставчик на домейни, но във всички случаи в крайна сметка създавате DNS A Record, който свързва име на домейн с вашия IP. Вижте за справка следната екранна снимка от доставчика на DNS no-ip.com.

Създаване на нашия DNS запис

Данните за попълване, както може би очаквате, са името на DNS и IP адреса, No-IP е точно това, което трябва да илюстрираме създаването на домейн, но вероятно имате или ще изберете друг DNS доставчик. Процесът е доста сходен във всички тях.

Отнема известно време, за да се разпространи новият запис, така че можете да използвате ping, за да проверите кога IP е разрешен правилно:

ping redminek8s.ddns.net


Следващи стъпки

Сега, когато имаме входящ контролер и DNS домейн, остава само да конфигурирайте HTTPS за нашия сайт и инсталирайте Redmine, Ще използваме PostgreSQL като наша база данни, но ще видите колко лесно е да конфигурирате всички, използващи Helm.

Следете за Redmine в Kubernetes, част 2: Инсталиране на Redmine.

最终的Redmine升级?轻松搞定。

在一个软件中获得完美的项目规划、管理和控制的强大工具。

尝试Easy Redmine 30天免费试用

完整功能,SSL 保护,每日备份,在您的地理位置