Redmine в Kubernetes – Част 1: Подготовка на средата
В тази серия от две части ще разположим Redmine в Kubernetes. Ще използваме препоръчани инструменти и практики с цел разполагане на устойчив екземпляр на Redmine над HTTPS.
Разделихме това ръководство на две части, върху които първо да се съсредоточим инсталиране на инструментите и компонентите ще се използва внедряването на 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? Лесно.
Вземете всички мощни инструменти за перфектно планиране, управление и контрол на проекти в един софтуер.