Redmine Kubernetes'te - Bölüm 1: Ortamı Hazırlama

6/22/2020
6 perc
Lukáš Beňa

Bu iki bölümlük seride, Redmine'i Kubernetes'e dağıtacağız. Redmine'in HTTPS üzerinde dayanıklı bir örneğini dağıtmak amacıyla önerilen araçları ve uygulamaları kullanacağız.

Redmine dağıtımı için araçları ve bileşenleri kurmayı ilk olarak odaklanmak üzere bu nasıl yapılırı iki bölüme ayırdık. Ancak karmaşıklık konusunda endişelenmeyin. Kubernetes'e yeni başlayan biri olsanız bile, anlaşılır bir açıklama olacak.

Bu kılavuz, bulut-agnostik olacak şekilde yazılmıştır, bu nedenle kullandığımız bulutla ilgili tüm bahsetmeleri bilinçli olarak çıkardık. Kullandığımız bulutu tahmin edebilir ve bize neyin farkını gösterdiğini söylerseniz yorum yapın. Bulutunuzun sunduğu diğer hizmetlerle iyi entegre olan Kubernetes hizmetini kullanmanızı öneririz.

Microk8s veya minikube gibi ortamlar burada dikkate alınmamaktadır, çünkü bu kılavuzun kapsamı dışında kalan bazı yapılandırmalar gerektirir. Özellikle, HTTPS yapılandırmamız kümemizin genel bir IP'ye sahip olmasını gerektirir.


Helm kullanalım

Kubernetes, konteyner orkestrasyonu için karmaşık bir araçtır. Başlamak için öğrenmemiz gereken birçok kavram vardır. Neyse ki, ihtiyaç duyduğumuz soyutlama seviyesini sağlayan Sisak adında bir proje vardır. Kendi sözlerine göre "Eğer işleri doğru yaptıysak, kullanıcılar Helm'i yükleyebilir ve ardından dakikalar içinde üretim kalitesinde hazır bileşenler yükleyebilirler"

İsimlerinin nedenlerini bir kenara bırakarak (hepsi bir metaforun, Helm'in, Kubernetes'in ve Konteynerlerin hikayesini anlatır) helm, bileşeni ihtiyaçlarımıza göre özelleştirmemize izin verirken kurulumu gerçekten basitleştirir. Helm 3'ü, en son ve hatta daha da basitleştirilmiş sürümünü kullanacağız.

Bulut sağlayıcınızın bulut kabuğunu kullanıyorsanız, büyük olasılıkla Helm 3 zaten mevcuttur, ancak değilse Helm belgelerinin sağladığı kılavuzu izleyerek yükleyebilirsiniz helm.sh/docs/intro/install/. Kullanmakta olduğunuz komut satırından kümenize zaten erişiminizin olması gerekmektedir. Bulut sağlayıcınızın bunu nasıl yapılacağına dair bir kılavuzu vardır.


Ingress Denetleyicisini Yükleyin

Bu, kümemize yükleyeceğimiz ilk bileşen ve aynı zamanda göreceğimiz ilk Kubernetes kavramıdır. Bir Ingress denetleyicisi, kümenizin giriş kapısında bulunur, tüm web isteklerini alır ve isteği yanıtlamaktan sorumlu olan dahili bileşene yönlendirir. Başlangıçta, yanıt verecek kimse olmayacak, ancak Redmine'i yüklediğimizde isteklerin hedefi olarak eklenir.

Kubernetes, kullanacağımız NGINX Ingress Denetleyicisi'ni sağlar. Belgeleri, bunu Helm kullanarak nasıl yükleyeceğimizi açıklar:

helm repo hozzáadása ingress-nginx https://kubernetes.github.io/ingress-nginx && helm repo frissítés

sisak telepítése ingress-kontroller ingress-nginx / ingress-nginx

İlk komut, ingress denetleyicisinin bulunduğu uygulama deposunu eklerken, ikincisi onu kümenize yükler. Tamamlandığında, komut, başlamak için bazı bilgileri yazdıracaktır, bunlar arasında denetleyiciye atanan genel IP'yi nasıl alacağınızı magába foglalja:

kubectl szolgáltatások - óra

Sonuç, şuna benzer bir şey olacaktır:

NÉV TÍPUSA Klaszter-IP KÜLSŐ-IP PORT (K) KORA

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

vezérlő-felvételi ClusterIP 10.0.135.226 443 / TCP 5m22s

kubernetes ClusterIP 10.0.0.1 443 / TCP 44 óra

EXTERNAL-IP'yi bir sonraki adımda ihtiyacımız olacağı için not alın. Orada elde ettiğiniz değerin bir IP yerine olması durumu gerçekleşebilir. Buluta genel bir IP alması ve kümenize atanması biraz zaman alır. Sadece birkaç saniye daha bekleyin ve IP kullanılabilir olmalı.


Bir DNS A Kaydı Oluşturun

IP'yi aldıktan sonra, tarayıcıya gidip kümenizin nasıl yanıt verdiğini görebilirsiniz. Tabii ki, henüz hiçbir uygulama yüklü olmadığı için kümeniz "404 Bulunamadı" hatasıyla yanıt verecektir. O IP'ye ilişkilendirebileceğimiz bir DNS alanı oluşturacağız, umarım, sayı ve nokta listesinden daha kolay hatırlanır.

Redmine için bir internet alanı oluşturmanın yolu, alan sağlayıcınıza büyük ölçüde bağlıdır, ancak tüm durumlarda, bir alan adını IP'nizle bağlayan bir DNS A Kaydı oluşturursunuz. Aşağıdaki ekran görüntüsü no-ip.com DNS sağlayıcısına bir referans olarak bakılabilir.

DNS A Kaydı Oluşturma

Bekleyeceğiniz veriler, DNS Adı ve IP olacaktır. No-IP, bir alan oluşturmanın nasıl yapıldığını göstermek için ihtiyacımız olan şeydir, ancak muhtemelen farklı bir DNS sağlayıcı seçeceksiniz veya seçmişsinizdir. Süreç hepsinde oldukça benzerdir.

Yeni kaydın yayılması biraz zaman alır, bu yüzden IP'nin doğru şekilde çözümlendiğini kontrol etmek için ping'i kullanabilirsiniz:

ping redminek8s.ddns.net


Következő lépések

Artık bir ingress denetleyicisi ve bir DNS alanımız olduğuna göre, yapmamız gereken tek şey sitemiz için HTTPS'yi yapılandırmak ve Redmine'i yüklemek. Veritabanı olarak PostgreSQL'i kullanacağız, ancak Helm'i kullanarak her şeyi nasıl yapılandıracağınızı göreceksiniz.

Redmine in Kubernetes Bölüm 2: Redmine'i Yükleme için takipte kalın.

Redmine yükseltmesi için en iyi seçenek? Kolay.

Mükemmel proje planlaması, yönetimi ve kontrolü için güçlü araçları tek bir yazılımda edinin.

Easy Redmine'ı 30 gün ücretsiz deneyin

Tam özellikli, SSL korumalı, günlük yedeklemeler, bulunduğunuz konumda