Redmine Kubernetes'te - Bölüm 2: Redmine Kurulumu

6/30/2020
8 dakikadır.
Lukáš Bena.

Bu, Redmine'ın Kubernetes'e dağıtılması hakkında yapılan serinin ikinci bölümüdür. Bu yazılı, güvenilir bir Redmine kurulumunun nasıl dağıtılacağına dair talimatlar sunulmaktadır.

Yeniden Sayma Bölüm 1

Artık Kubernetes üzerinde Redmine'in kurulumunu sabırsızlıkla beklemek gerekiyor. Sonuçta, bunun için sen, değil mi?

Kubernetes'te Redmine - Bölüm 1: Ortamı Hazırlama Yazısında, kümeniz içinde internet bağlantısı yönlendirmek için birleştirilmiş olan Ingress Controller'ı kurduk ve redminek8s.ddns.net adına bir DNS alanı oluşturuldu. Şimdi sadece HTTPS'i korumamız gerekiyor ve Redmine'i dağıtmaya hazırız.


sertifika yöneticisi dosyası HTTPS

Redmine'i HTTP olarak kullandık, ancak HTTPS artık web siteleri için standart hale geldi, hatta HTTPS'nin kullanıldığı bir web sitesinde güvenlik sorunu olduğunda çoğu tarayıcınızda kayıtlı.

Çünkü HTTPS'i yükleme ücreti basit bir görev değildir, çünkü bir sertifika satın alma oranları ve bunu sitenize, belirli bir süre sonra yenilemeniz ve süreci tekrarlamanız gerekmektedir. Sertifika yöneticisi, tüm bunları otomatikleştirir, sertifikaların yenilenmesini bile yapar ve hatta ücretsiz sertifikalar alır. Daha fazla bilgi için bu sitelere oranları, ancak aşağıda belirtilen her şeyi açıklayacağım.


cert-manager'ı Yükleyin

Kümenize cert-manager'ı yüklemek için aşağıdaki adımları takip edin:

dümen repo jetstack ekleyin https://charts.jetstack.io && dümen repo güncellemesi

dümen kurmak cert-manager jetstack / cert-manager - set installCRDs = true

Önce cert-manager'ın bulunduğu depoyu eklersiniz, ardından en son yazılımı kurarsınız.


Sertifika Yetkilisi ile Bağlantı Kurun

Şimdi cert-manager'ın paketimiz Sertifika sağlayıcısına bağlanmasını yönlendirmemiz gerekiyor. Ücretsiz bir sertifika yetkilisi olan LetsEncrypt'i kullanacağız. İlk olarak bu bileşimin oluşturulması (gerçek bir e-posta adresiyle yerine geçişten emin olun) ve Cluster-issuer.yaml olarak adlandırın

apiVersion: cert-manager.io/v1alpha2

tür: ClusterIssuer

meta:

  isim: letsencrypt

özellik:

  acma:

    Sunucu: https://acme-v02.api.letsencrypt.org/directory

    e-posta:

    PrivateKeySecretRef:

      isim: letsencrypt

    çözücüler:

    - http01:

        giriş:

          sınıf: nginx

Daha sonra bunu kümeleştirmeyi uygulayın

kubectl uygula -f cluster-issuer.yaml

Tebrikler! Yukarıdaki dosya, yazdığımız ve kümeye uyguladığımız ilk Kubernetes arayüzüdür. LetsEncrypt'e nasıl bağlanacağını gösterdiğini fark etmiş olabilirsiniz, ancak aynı zamanda 1.Bölüm'de oluşturulmuşmuz Ingress Controller'ı da kayıtlıdır (Sonunda class: nginx) Bu tür bir akışında bazı özelliklerin diğerlerine akışını göstermek için bazı satırlar ile bölünmelerini gösterir. Dosyanın düzgün şekilde okunup bozulması için bu parçacıkların dağılımı.

Şimdi kümelenmiş HTTPS özelliğine sahip. Bir uygulama kurduğumuzda HTTPS ile çalıştırma talimatını verme ve voilà! Sertifika alma süreci otomatik olarak arka planda gerçekleştirilecektir.


Redmine Kurulumu

Bu, hepimizin beklediği şey. Redmine'ı birkaç farklı şekilde kurabiliriz, ancak en uygun olanı Helm kullanmaktır. Daha önce yaptığımız gibi, öncelikle Redmine'ın bulunduğu depoyu ekliyoruz.

dümen repo bitnami ekle https://charts.bitnami.com/bitnami && dümen repo güncellemesi

Ancak bu seferin hemen gerçekleştirilmesi yerine, Redmine'ın sahip olunması bazı özel durumun belirtilmesi için bir raporlama şeması oluşturulacaktır.

Tüm parçaları kendi bölümlerine ayıracağız, ancak hepsini aynı dosyalara, birbirinin ardına koyacaksınız. Dosyayı değerler.yaml olarak adlandırın.

Tüm Helm uygulamaları uygulanabilir tüm olası ayarları içeren bir değerler.yaml dosyasına sahiptir. Kendi değerleri.yaml dosyalarımızı oluşturduğumuzda değişebiliriz. Dosyamıza dahil ettiğimiz herhangi bir değer, varsayılan dosyada olduğu gibi saklanır.

Tüm varsayılan değerler ayrıca dümen uygulama sayfasında bulunabilir, https://hub.helm.sh/charts/bitnami/redmine. Hadi kontrolü ve tüm kontrolleri kontrol edin.


İlk Yönetici Kullanıcısı

Redmine Kullanıcı Adı: adminUser

Redmine Şifresi:

Bu adım, gereklilik kadar kapsamlıdır. Bu, Redmine'daki ilk kullanıcımızdır ve ilk kez giriş yapmak için kullanacağımız kullanıcıdır.

Redmine sürümünde, bu kullanıcıyla yeni kurulumunuzun ayarlarını yapmak için erişebileceksiniz.


PostgreSQL Veritabanı

Varsayılan olarak, Helm kurulumumuzun bir mariadb veri tabanının verisini gerektirecektir. Bunun yerine kurulumumuzu PostgreSQL kullanabileceği şekilde yapılandıracağız. Ayrıca bu veri tabanına geçmek için en az bir şifrenin belirtilmesi gerekiyor, aşağıda görebileceğiniz gibi

veritabanı Türü: postgresql

mariad:

  etkin: yanlış

postgresql:

  etkin: doğru

  postgresqlVeritabanı: Redmine

  postgresql Kullanıcı Adı: Redmine

  postgresqlŞifresi:

Kurulumumuzda açıkça belirtmemiz gerekiyor ki MariaDB'nin PostgreSQL veri aktarımıyla birlikte kurulmasını istemiyoruz.


DNS adı olanları

Aşağıdaki bağlantı, Bölüm 1'de yaptığımız DNS anahtarının diğer tarafıdır. Görebileceğiniz gibi, HTTPS'nin iletişim protokolü olan TLS'yi etkinleştiriyor ve DNS kaydını gösterirken hediyeler ana bilgisayarın adını ayarlıyoruz:

giriş:

  etkin: doğru

  certManager: doğru

  ana bilgisayar adı: redminek8s.ddns.net

  tls: doğru

  ek açıklamalar:

    kubernetes.io/ingress.class: nginx

    cert-manager.io/cluster-issuer: letsencrypt

Ayrıca son iki satırda uygulamamızı Ingress Denetleyici ve oluşturduğumuz Küme İhraç Edici ile bağlıyoruz.

Şimdi özel uygulamalarımızla Redmine'ı dağıtabiliriz:

dümen kurulum Redmine -f değerleri.yaml bitnami / redmine

Bu satır, daha önce Tebrikler diğer helm kurulum satırlarına benzer, ancak bu sefer özel bir değerler.yaml kesilir. Bu, herhangi bir Helm paketinin parçalanmasıdır.

Hala biraz daha sabıra ulaşılabilir var, çünkü sunulanın biraz zaman alır. Uygulama konteynerlerinizi kontrol etmek için çalıştırabilirsiniz:

kubectl bakla olsun - izlemek

Komut, aşağıdakine benzer bir şey döndürecektir:

İSİM HAZIR DURUM YENİDEN BAŞLATMA YAŞI

. . .

redmine-999c68dd9-x7h2k    1/1     Running   0          6m40s

redmine-postgresql-0 1/1 Çalışıyor 0 6m40s

Her iki konteynerin durumu Çalışıyor ve tümünün hazır 1/1 olduğu durum kadar beklemeniz gerekiyor, ki benim durumumda yaklaşık 6 dakika sürdü.

Şimdi her şey hazır, tarayıcıyı açabilir ve yeni dolaşımlarımıza erişebiliriz:

Redmine hazır


SONUÇ

Kubernetes, uygulamaları dağıtmak için karmaşık bir araç, ancak Helm'in yardımıyla (kasıtlı bir kelime oyunu yok) bu karmaşıklığı aştık ve güvenilir bir Redmine kurulumu gerçekleştirdik.

Bu nasıl yapılır özetini aşağıda git repo'da bulabilirsiniz: https://github.com/lcofre/redmine-on-k8s. Takılırsanız dosyalarınızla karşılaştırabilirsiniz.

Karmaşık veya açıklama bulutu spesifik olduğu için bazı kavramları tartışmadan çıkardık. Bunlar arasında uygulamanızın Canlılık ve Hazır olma durumu, gelen postaların ayarları ve daha fazla yükü işlemek için ölçeklendirme bulunur. Lütfen ilginizi ilgilendiren konuları ayrıntılarıyla, böylece bir şekilde nasıl yapılarda tartışabiliriz.

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

Mükemmel proje planlama, yönetim ve kontrol için güçlü araçlar tek bir yazılımda çalışanlar.

Easy Redmine'ı 30 gün ücretsiz deneyin

Tam dosyaları, SSL korumaları, günlük yedeklemeler, depolama birimleri