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

6/30/2020
8 λεπτά
Lukáš Beňa.

Μπου, Redmine'ın Kubernetes'e dağıtılması hakkında yapılan σερινίν ikinci bölümüdür. Bu makalede, güvenilir bir Redmine kurulumunun nasıl dağıtılacağına dair talimatlar sunulacaktır.

Yeniden Sayma Bölüm 1

Artık Kubernetes üzerinde Redmine'in kurulumunu sabırsızlıkla bekliyor olmalısınız. Sonuçta, bunun için geldiniz, değil mi;

Kubernetes'te Redmine - Bölüm 1: Ortamı Hazırlama yazısında, kümeniz içinde internet isteklerini yönlendirmek için bir bileşen olan Ingress Controller'ı kurduk ve redminek8s.ddns.net adında bir DNS alanı oluşturduk. Şimdi sadece HTTPS'i yapılandırmamız gerekiyor ve Redmine'i dağıtmaya hazırız.


cert-manager ile HTTPS

Redmine'i HTTP olarak kullanabilirdik, ancak HTTPS artık siteleri için standard haline geldi, hatta HTTPS kullanılmayan bir web sitesinde güvenlik sorunu olduğunda çoğu tarayıcı sizi uyarır.

Genellikle HTTPS'i etkinleştirmek basit bir görev değildir, çünkü bir sertifika satın almanız ve bunu sitenize yüklemeniz, belirli bir süre sonra yenilemeniz ve süreci tekrarlamanız gerekmektedir. Cert-manager, tüm bunları otomatikleştirir, sertifikaların yenilenmesini bile yapar ve hatta ücretsiz sertifikalar alır. Daha fazla bilgi için bu sitelerine bakabilirsiniz, ancak aşağıda bilmeniz gereken her şeyi açıklayacağım.


cert-manager'ı Yükleyin

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

τιμόνι repo προσθέστε jetstack https://charts.jetstack.io && helm repo ενημέρωση

helm install cert-manager jetstack / cert-manager - set installCRDs = true

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


Sertifika Yetkilisi ile Bağlantı Kurun

Şimdi cert-manager'ın seçtiğimiz Sertifika sağlayıcısına bağlanmasını yönlendirmemiz gerekiyor. Ücretsiz bir sertifika yetkilisi olan LetsEncrypt'i kullanacağız. İlk olarak bu dosyayı oluşturun (gerçek bir e-posta adresiyle yerine geçtiğinden emin olun) ve cluster-ssuer.yaml olarak adlandırın.

apiVersion: cert-manager.io/v1alpha2

είδος: ClusterIssuer

μεταδεδομένα:

  όνομα: letsencrypt

προδιαγραφή:

  ακμή:

    υπηρέτης: https://acme-v02.api.letsencrypt.org/directory

    ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ:

    privateKeySecretRef:

      όνομα: letsencrypt

    επιλυτές:

    - http01:

        είσοδος:

          τάξη: nginx

Ardından bunu kümenize uygulayın

kubectl apply -f cluster -issuer.yaml

Tebrikler! Yukarıdaki dosya, yazdığımız ve kumeye uyguladığımız ilk Kubernetes yapılandırmasıdır. LetsEncrypt'e nasıl bağlanacağını gösterdiğini fark etmiş olabilirsiniz, ancak aynı zamanda 1. Bölüm'de oluşturduğumuz Ελεγκτής εισόδου'ı da tanımlar (Κλάση Sonunda: nginx) Bu türda bazlerımlırma göstermek için bazı satırlar boşluklarla ayrılmıştır. Dosyanın düzgün şekilde okunup uygulanması için bu boşlukları koruyun.

Το πρόγραμμα HTTPS είναι γνωστό. Bir uygulama kurduğumuzda HTTPS ile çalışmasını talimat verebilir 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.

helm repo προσθέστε bitnami https://charts.bitnami.com/bitnami && helm repo ενημέρωση

Ancak bu sefer hemen kurmak yerine, Redmine'ın sahip olmasını istediğimiz bazı özel davranışları belirtmek için bir yapılandırma dosyası oluşturacağız.

Tüm yapılandırmaları kendi bölümlerine ayıracağız, ancak hepsini aynı dosyaya, birbirinin ardına koyacaksınız. Dosyayı αξίες.yaml olarak adlandırın.

Tüm Helm uygulamaları, uygulamaya yapılabilecek tüm olası yapılandırmaları içeren bir αξίες.yaml dosyasına sahiptir. Τιμές Kendi.yaml dosyamızı oluşturduğumuzda istediğimiz değişiklikleri tanımlarız. Dosyamıza dahil etmediğimiz herhangi bir değer, varsayılan dosyada olduğu gibi bırakılır.

Tüm varsayılan değerler ayrıca τιμόνι uygulama sayfasında da bulunabilir, https://hub.helm.sh/charts/bitnami/redmine. Hadi gidin ve tüm yapılandırmaları kontrol edin.


İlk Yönetici Kullanıcısı

Redmine Kullanıcı Adı: adminUser

Redmine Şifresi:

Bu adım, gereklilik kadar anlaşılması kolaydı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 kurulduğunda, bu kullanıcıyla yeni kurulumunuzu yapılandırmak için erişebileceksiniz.


PostgreSQL Veritabanı

Varsayılan olarak, Helm kurulumumuzun bir mariadb veritabanının oluşturulmasını gerektirecektir. Bunun yerine kurulumumuzu PostgreSQL kullanacak şekilde yapılandıracağız. Ayrıca bu veritabanına erişmek için en az bir şifre eklemeniz gerekmektedir, aşağıda görebileceğiniz gibi

Τύπος βάσης δεδομένων: postgresql

mariadb:

  ενεργοποιημένο: false

postgresql:

  ενεργοποιημένο: true

  postgresql Βάση δεδομένων: Redmine

  postgresql Όνομα χρήστη: Redmine

  postgresqlPassword:

Kurulumumuza açıkça belirtmemiz gerekiyor ki MariaDB'nin PostgreSQL veritabanı yapılandırmasıyla birlikte kurulmasını istemiyoruz.


Το DNS για την επεξεργασία

Aşağıdaki yapılandırma, Bölüm 1'de yaptığımız DNS yapılandırmasının diğer tarafıdır. Görebileceğiniz gibi, HTTPS'nin arkasındaki protokol olan TLS'yi etkinleştiriyor ve DNS kaydı oluştururken kulllandığımız an bilgisayar adını ayarlıyoruz:

είσοδος:

  ενεργοποιημένο: true

  certManager: αλήθεια

  όνομα κεντρικού υπολογιστή: redminek8s.ddns.net

  tls: αλήθεια

  σχολιασμοί:

    kubernetes.io/ingress.class: nginx

    cert-manager.io/cluster-issuer: letsencrypt

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

Şimdi özel yapılandırmamızla Redmine'ı dağıtabiliriz:

helm εγκαταστήστε Redmine -f Values.yaml bitnami / redmine

Bu satır, daha önce kullandığımız diğer τιμόνι εγκατάσταση satırlarına benzer, ancak bu sefer özel bir values.yaml sağlıyoruz. Bu, herhangi bir Helm uygulamasını özelleştirmenin yoludur.

Hala biraz daha sabıra ihtiyacımız var, çünkü uygulamanın oluşturulması biraz zaman alır. Uygulama konteynerlerinizin durumunu kontrol etmek için bu komutu çalıştırabilirsiniz:

kubectl πάρτε λοβό - ρολόι

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

ΟΝΟΜΑ ΕΤΟΙΜΟΙ ΚΑΤΑΣΤΑΣΕΙΣ ΕΠΑΝΑΦΟΡΑ ΗΛΙΚΙΑΣ

. . .

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

redmine-postgresql-0 1/1 Τρέξιμο 0 6m40s

Her iki konteynerin durumu Running ve tümünün hazır 1/1 olduğu duruma kadar beklemelisiniz, ki benim durumumda yaklaşık 6 dakika sürdü.

Şimdi her şey hazır, tarayıcıyı açabilir ve yeni dağıtımımıza gidebiliriz:

Redmine hazır


CEmONC

Kubernetes, uygulamaları dağıtmak için karmaşık bir araçtır, 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ın özetini aşağıdaki 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 bulut özgü 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 yapılandırması ve daha fazla yükü işlemek için ölçeklendirme bulunur. Lütfen ilginizi çeken konuları aşağıya bildirin, böylece gelecekteki bir 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 edinin.

Easy Redmine'ı 30 gün ücretsiz deneyin

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