Redmine Kubernetesban - 1. rész: Környezet előkészítése

Ezt a how-to-t két részre osztottuk, hogy először a Redmine telepítéséhez használt eszközökre és komponensekre összpontosítsunk. De ne aggódj a bonyolultság miatt. Még ha új vagy a Kubernetes-hez, érthető magyarázat lesz.
Ez az útmutató felhőfüggetlen írás volt, ezért szándékosan kihagytuk az összes említést a használt felhőről. Hagyj egy megjegyzést, ha kitalálod, melyik felhőt használtuk, és mondd el nekünk, melyik részlet árulta el. Javasoljuk, hogy használd a felhő által kínált Kubernetes szolgáltatást, mivel jól integrálódik a felhő által nyújtott egyéb szolgáltatásokkal.
Olyan környezetek, mint a microk8s vagy a minikube, nem szerepelnek itt, mivel több konfigurációt igényelnek, ami túlmutat ennek az útmutatónak a hatáskörén. Különösen a HTTPS konfigurációnk miatt szükségünk van arra, hogy a klaszterünknek legyen nyilvános IP-címe.
Használjuk a Helm-et
A Kubernetes egy összetett eszköz a konténer-orchestrációhoz. Sok fogalmat kell megtanulnunk, hogy elkezdjük. Szerencsére van egy projekt, amely a szükséges absztrakciós szintet biztosítja, ez a Helm. A saját szavaik szerint "Ha jól csináltuk, a felhasználók telepíthetik a Helm-et, és néhány percen belül telepíthetnek gyártási minőségű, polcról leemelhető komponenseket".
Figyelmen kívül hagyva a nevük okait (minden a metafora, a Helm, a Kubernetes és a konténerek történetét meséli el), a Helm valóban egyszerűsíti a telepítést, miközben lehetőséget ad a komponens testreszabására az igényeink szerint. A Helm 3-at fogjuk használni, ami a legújabb és még egyszerűbb verzió.
Ha a felhőszolgáltató felhőkonzolját használod, akkor valószínűleg már elérhető a Helm 3, de ha nem, akkor kövesd a Helm dokumentáció által nyújtott útmutatót, a helm.sh/docs/intro/install/ címen. Már hozzáférésednek kell lennie a klaszteredhez a használt parancssorból. A felhőszolgáltatódnak is van útmutatója arra vonatkozóan, hogyan kell ezt megtenni.
Telepítse az Ingress Controller-t
Ez az első komponens, amelyet telepítünk a kluszterünkbe, és az első kubernetes fogalom, amit látni fogunk. Az Ingress controller az Ön kluszterének bejárati ajtajánál helyezkedik el, fogadja az összes webkérést, majd átirányítja azokat a belső komponenshez, amely felelős a kérés megválaszolásáért. Kezdetben senki sem lesz kész a válaszadásra, de amikor telepítjük a Redmine-t, hozzáadódik egy célállomásként a kérésekhez.
A Kubernetes biztosítja a NGINX Ingress Controller-t, amelyet használunk. A dokumentációjuk magyarázza, hogyan telepíthető a Helm segítségével:
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx && helm repo update
helm install ingress-controller ingress-nginx/ingress-nginx
Az első parancs hozzáadja az alkalmazások tárházát, ahol az Ingress controller található, míg a második telepíti azt a kluszterébe. Amikor befejeződött, a parancs néhány információt nyomtat ki a kezdéshez, beleértve, hogyan lehet megkapni a vezérlőhöz rendelt nyilvános IP-címet:
kubectl get services --watch
Az eredmény hasonló lesz ehhez:
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
Jegyezze fel az EXTERNAL-IP-t, mert szükségünk lesz rá a következő lépésben. Előfordulhat, hogy az IP helyett az érték <pending> lesz. Néhány másodpercig tart, amíg a felhő nyilvános IP-t szerez és hozzárendeli a kluszteréhez. Várjon néhány másodpercet, és az IP elérhetővé válik.
Létrehozás egy DNS A rekordot
Most, hogy megvan az IP-címed, csak meg kell nyitnod egy böngészőt, és megnézni, hogyan válaszol a klusztered. Természetesen, mivel még nincs telepítve alkalmazás, a klusztered egy "404 Not Found" hibával válaszol. Létrehozunk egy DNS domain-t, amelyet hozzárendelhetünk az IP-címhez, remélhetőleg könnyebben megjegyezhető, mint egy számok és pontok listája.
Az internetes domain létrehozásának módja a Redmine-hoz nagymértékben függ a domain-szolgáltatódtól, de minden esetben létrehozol egy DNS A rekordot, amely összekapcsol egy domain nevet az IP-címeddel. Lásd példaként a következő képernyőképet a no-ip.com DNS-szolgáltatótól.
DNS A rekordunk létrehozása
Az adatok, amelyeket meg kell adnod, ahogy azt várhatod, a DNS-név és az IP-cím. A No-IP pont azt mutatja be, amire szükségünk van egy domain létrehozásához, de valószínűleg más DNS-szolgáltatót választasz vagy választottál. A folyamat hasonló az összes többihez.
Egy kis időbe telik, amíg az új rekord elterjed, így a ping használatával ellenőrizheted, hogy az IP-cím helyesen van-e feloldva:
ping redminek8s.ddns.net
Következő lépések
Most, hogy van egy belépési vezérlőnk és egy DNS domain-unk, az egyetlen dolog, ami még hátra van, hogy konfiguráljuk a HTTPS-t a weboldalunkhoz és telepítsük a Redmine-t. PostgreSQL-t használunk adatbázisként, de látni fogod, milyen könnyű mindent beállítani a Helm segítségével.
Maradj velünk a Redmine Kubernetes-ban 2. részéért: Redmine telepítése.

Az utolsó Redmine frissítés? Egyszerű.
Szerezd meg az összes erőteljes eszközt a tökéletes projekttervezéshez, -kezeléshez és -irányításhoz egyetlen szoftverben.