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 λεπτά
Λούκας Μπένια

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

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

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

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


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

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

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

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

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

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

τιμόνι repo προσθέστε ingress-nginx https://kubernetes.github.io/ingress-nginx && helm repo ενημέρωση

τιμόνι εγκαθιστώστε το ingress-controller ingress-nginx / ingress-nginx

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

kubectl get υπηρεσίες --watch

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

ΟΝΟΜΑ ΤΥΠΟΣ CLUSTER-IP ΕΞΩΤΕΡΙΚΗ Θύρα IP (Η) ΗΛΙΚΙΑΣ

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

ClusterIP ελεγκτή-εισαγωγής 10.0.135.226 443 / TCP 5m22s

kubernetes ClusterIP 10.0.0.1 443 / TCP 44 ώρες

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