bg
Език
  • en
  • de
  • fr
  • es
  • br
  • ru
  • jp
  • kr
Превод от изкуствен интелект
  • ee
  • ae
  • cn
  • vn
  • id
  • eu
  • il
  • gr
  • no
  • fi
  • dk
  • se
  • tr
  • bg
  • nl
  • it
  • pl
  • hu
  • ro
  • ua
  • cs

Редмайн в Кубернетис – Част 1: Подготовка на средата

6/22/2020
6 minutes
Лукаш Беня

В тази двучастна серия ще разгърнем Redmine в Kubernetes. Ще използваме препоръчителни инструменти и практики с цел да разгърнем устойчива инстанция на Redmine чрез HTTPS.

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

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

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


Да използваме Helm

Kubernetes е сложен инструмент за оркестрация на контейнери. Има много концепции, които трябва да научим, за да започнем. Късметлии за нас има проект наречен Helm, който предоставя ниво на абстракция, от което се нуждаем. По техните думи "Ако направим нещата правилно, потребителите могат да инсталират Helm и в рамките на минути да инсталират компоненти от производствен клас".

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

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

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

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

helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx && helm repo update

helm install ingress-controller ingress-nginx/ingress-nginx

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

kubectl get services --watch

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

NAME                   TYPE           CLUSTER-IP     EXTERNAL-IP      PORT(S)          AGE

nginx-controller       LoadBalancer   10.0.115.117   89.68.23.33   80/TCP,443/TCP   5m22s

controller-admission   ClusterIP      10.0.135.226   <none>           443/TCP          5m22s

kubernetes             ClusterIP      10.0.0.1       <none>           443/TCP          44h

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


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

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

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

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

Данните, които трябва да попълните, както и очаквате, са името на 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, ежедневни резервни копия, във вашата географска локация