Redmine в Kubernetes - Част 1: Предварителни изчисления за управление

6/22/2020
6 минути
Лукаш Беня.

В тази tweedelige серия zullen внедряваме Redmine в Kubernetes. Ние използваме инструменти и работим с тях, които изпълняваме чрез HTTPS чрез HTTPS.

We hebben deze how-to in twee delen verdeeld om ons eerst te richten op het инсталирате инструменти и компоненти внедряване на Redmine за използване. Maar maak je geen zorgen over complexiteit. Zelfs als je nieuw bent в Kubernetes, zal het een begrijpelijke uitleg zijn.

Deze handleiding е geschreven om облак-agnostisch te zijn, dus we hebben opzettelijk alle vermeldingen van de cloud die we hebben gebruikt weggelaten. Laat een reactie achter als je kunt raden welke cloud we hebben gebruikt en vertel ons welk detail het verklapte. We raden je aan om de Kubernetes-service te gebruiken die je cloud biedt, omdat deze goed geïntegreerd is met andere services die je cloud ook biedt.

Omgevingen zoals microk8s на minikube worden hier niet beschouwd omdat ze wat meer configuratie vereisen die buiten de scope van deze handleiding valt. In het bijzonder vereist onze HTTPS конфигурация dat ons cluster een openbaar IP-adres heeft.


Laten we Helm gebruiken

Kubernetes е сложен инструмент за контейнер-оркестрация. Er zijn veel concepten die we moeten leren om aan de slag te gaan. Gelukkig е проект genaamd Шлем dat het abstractieniveau biedt dat we nodig hebben. In hun eigen woorden „Als we de dingen goed deden, konden gebruikers Helm installeren en binnen enkele minuten productieklare off-the-shelf-componenten installeren.“

Los van de redenen voor hun namen (het vertelt allemaal het verhaal van een metafoor, Helm, Kubernetes en Containers) vereenvoudigt helm de installatie echt terwijl het ruimte biedt om het component aan onze behoeften aan te passen. We zullen Helm 3 gebruiken, hun nieuwste en nog eenvoudigere versie.

Als je de cloud shell van je cloudprovider gebruikt, is de kans groot dat Helm 3 al beschikbaar is, maar zo niet, dan kun je het installeren volgen de handleiding die de Helm-documentatie biedt, helm.sh/docs/intro/install/. Je moet al toegang hebben tot je cluster vanaf de opdrachtregel die je gebruikt. Je cloudprovider heeft ook een handleiding over hoe je dat moet doen.


Инсталиране на входен контролер

Това е най-големият компонент, който ние в този клъстер zullen installeren en ook het eerste Kubernetes-concept dat we zullen zien. Een Ingress-controller bevindt zich bij de ingang van uw cluster, ontvangt alle webverzoeken en stuurt ze door naar het interne component dat verantwoordelijk is voor het beantwoorden van het verzoek. In eerste instantie zal er niemand klaar zijn om te antwoorden, maar wanneer ние инсталираме Redmine, wordt het toegevoegd als een bestemming voor de verzoeken.

Kubernetes biedt de NGINX Contress Controller die we zullen gebruiken. Хунската документация позволява инсталиране с помощта на Хелм:

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

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

Първият възможен вариант е, че това хранилище е приложимо към контролера на Ingress, така че да бъде инсталирано във вашия клъстер. Wanneer het klaar is, zal de opdracht enkele informatie afdrukken om te beginnen, inclusief hoe u отвореният IP адрес на контролера е използван kunt verkrijgen:

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

Het resultaat zal iets vergelijkbaars zijn:

ИМЕ ТИП КЛАСТЪР-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, ако искаме да го направим в последното място. Het kan gebeuren dat in plaats van een IP de waarde die u daar krijgt е. Het duurt even voordat de cloud един отворен IP веркрийгт един допълнителен към вашия клъстер. Wacht gewoon nog een paar seconden en het IP zou beschikbaar moeten zijn.


Направете DNS A-запис

Nu je het IP hebt, kun je gewoon naar een browser gaan en zien hoe je cluster op je reageert. Natuurlijk zal je cluster, omdat er nog geen applicatie is installed, antwoorden met een "404 Not Found" foutmelding. We zullen een DNS-domein maken dat we aan dat IP kunnen koppelen, hopelijk gemakkelijker te onthouden dan een lijst met cijfers en punten.

Hoe je een internetdomein voor je Redmine kunt maken, hangt sterk af van je domeinprovider, maar in alle gevallen maak je uiteindelijk een DNS A-record aan dat een domeinnaam koppelt aan je IP. Последното изображение на DNS доставчика no-ip.com е референтно.

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

De gegevens die je moet invullen, zijn zoals je zou verwachten, DNS име и IP адрес. No-IP е прецизното, което ние знаем за създаването на домейн, който е илюстриран, maar je hebt waarschijnlijk een andere DNS-provider gekozen of zult dat doen. Този процес е vrijwel hetzelfde bij allemaal.

Het duurt even voordat het nieuwe record is verspreid, dus je kunt ping gebruiken om te controleren wanneer het IP correct wordt opgelost:

ping redminek8s.ddns.net


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

Сега имаме ingress-controller и DNS-domein hebben, това е enige wat nog rest, Конфигуриране на HTTPS за този сайт и инсталиране на Redmine. Ние zullen PostgreSQL als onze database gebruiken, maar je zult zien hoe gemakkelijk het is om alles te configureren met behulp van Helm.

Blijf op de hoogte voor Redmine в Kubernetes, част 2: Инсталиране на Redmine.

Последен ъпгрейд на Redmine? Makkelijk.

Съберете всички крахтидж инструменти за перфектно планиране на проекти, -beheer en -control в друг софтуер.

Probeer Easy Redmine 30 дни безплатно

Разнообразни функции, SSL-обслужване, актуални резервни копия, във вашето географско местоположение