Redmine Kubernetes'te - Bölüm 2: Redmine Kurulumu
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.