Kubernetes'te Redmine - Bölüm 2: Redmine Kurulumu
Bu, Redmine'i Kubernetes'e dağıtmayla ilgili dizinin ikinci kısmı. Bu makalede, güvenilir bir Redmine kurulumunun nasıl dağıtılacağına ilişkin talimatlar sağlayacağız.
Yeniden Sayma Bölüm 1
Şimdiye kadar, Kubmine'nin Redmine kurulumunu dört gözle beklemelisiniz. Sonuçta, bunun için geldin, değil mi?
In Kubernetes'te Redmine - Bölüm 1: Çevre hazırlama, kümenizin içindeki internet isteklerini yeniden yönlendirmek için bir bileşen olan Giriş Denetleyicisini kurduk ve bir DNS etki alanı oluşturduk, redminek8s.ddns.net. Şimdi yalnızca HTTPS'yi yapılandırmamız gerekiyor ve Redmine'i dağıtmaya hazırız.
Sertifika yöneticisi ile HTTPS
Redmine'imizi HTTP olarak tutabilsek de, HTTPS web siteleri için standart haline geldi, o kadar ki HTTPS bir web sitesi tarafından kullanılmadığında çoğu tarayıcı sizi bir güvenlik sorunu konusunda uyarıyor.
Bir sertifika satın alıp sitenize yüklemeniz, belirli bir süre sonra yenilemeniz ve işlemi tekrarlamanız gerektiğinden, HTTPS'yi etkinleştirmek genellikle önemsiz bir iş değildir. Sertifika yöneticisi, sertifikaların yenilenmesi de dahil olmak üzere tüm bunları otomatikleştirir ve hatta ücretsiz sertifikalar alır. hakkında daha fazla bilgi görebilirsiniz kendi site, ama sonra bilmeniz gereken her şeyi açıklayacağım.
Cert-manager uygulamasını yükleyin
Kümenize cert-manager yüklemek için aşağıdaki adımları uygulayın:
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 havuzu ekledikten sonra en son sürümünü yüklersiniz.
Sertifika Yetkilisine Bağlanma
Şimdi, sertifika yöneticisine seçtiğimiz Sertifika sağlayıcısına bağlanması için talimat vermemiz gerekiyor. Ücretsiz bir sertifika yetkilisi olan LetsEncrypt'i kullanacağız. Önce bu dosyayı oluşturun (değiştirmeyi unutmayın gerçek bir e-posta adresiyle) 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
Ardından ile kümenize uygulayın.
kubectl uygula -f cluster-issuer.yaml
Tebrikler! Yukarıdaki dosya, kümeye yazdığımız ve uyguladığımız ilk kubernetes yapılandırmasıdır. LetsEncrypt'e nasıl bağlanacağını göstermiş olabilirsiniz, ancak aynı zamanda Bölüm 1'de oluşturduğumuz Giriş denetleyicisini de açıklar (sınıf: sonunda nginx) Bu tür yapılandırma, bazı özelliklerin bağımlılığını göstermek için boşluklu bazı satırlara sahiptir diğerleri. Dosyanın düzgün bir şekilde okunmasını ve uygulanmasını sağlamak için bu boşlukları gösterildiği gibi tutun.
Artık kümeniz HTTPS etkin. Bir uygulama yüklediğimizde HTTPS ile çalışmasını ve voilà! Sertifika alma süreci otomatik olarak perde arkasında yapılacaktır.
Redmine Kurulumu
Hepimiz bunu bekliyorduk. Redmine'i birkaç farklı yolla kurabiliriz, ancak en uygun olanı Helm kullanmaktır. Daha önce yaptığımız gibi, önce deponun Redmine olduğunu ekledik
dümen repo bitnami ekle https://charts.bitnami.com/bitnami && dümen repo güncellemesi
Ancak bu sefer hemen yüklemek 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ümlerinde ayıracağız, ancak hepsini arka arkaya aynı dosyaya koyacaksınız. Değerler.yaml dosyasını çağırın.
Tüm Helm uygulamalarında, uygulamaya yapılabilecek tüm olası yapılandırmaların bulunduğu bir value.yaml dosyası bulunur. Kendi değerlerimizi 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ılacaktır.
Tüm varsayılan değerler dümen uygulaması sayfasında da bulunabilir, https://hub.helm.sh/charts/bitnami/redmine. Devam edin ve tüm yapılandırmaları kontrol edin.
İlk Yönetici kullanıcı
Redmine Kullanıcı adı: adminUser
RedminePassword:
Bu adım, anlaşılması kolay olduğu kadar gereklidir. İlk kez giriş yapmak için kullanacağımız Redmine'daki ilk kullanıcımız.
Redmine yüklendiğinde, yepyeni yüklemenizi yapılandırmak için bu kullanıcıyla ona erişebileceksiniz.
PostgreSQL veritabanı
Varsayılan olarak Helm kurulumumuz bir mariadb veritabanı oluşturulmasını gerektirir. Bunun yerine kurulumumuzu PostgreSQL kullanacak şekilde yapılandıracağız. Ayrıca, aşağıda görebileceğiniz gibi, bu veritabanına erişmek için en az bir şifre eklemeniz gerekir
veritabanı Türü: postgresql
mariad:
etkin: yanlış
postgresql:
etkin: doğru
postgresqlVeritabanı: Redmine
postgresql Kullanıcı Adı: Redmine
postgresqlPassword:
Kurulumumuza, MariaDB'nin PostgreSQL veritabanı yapılandırmasıyla birlikte kurulmasını istemediğimizi açıkça söylememiz gerekiyor.
DNS adı yapılandırması
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ördüğünüz gibi, HTTPS'nin arkasındaki protokol olan TLS'yi etkinleştirdiğimiz ve DNS kaydımızı oluştururken kullandığımız ana bilgisayar adını ayarladık:
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 Controller ve daha önce yarattığımız Cluster Sertifikasına bağlarız.
Şimdi Redmine'ı özel yapılandırmamızla dağıtabiliriz:
dümen kurulum Redmine -f değerleri.yaml bitnami / redmine
Bu satır, daha önce kullandığımız diğer dümen kurulum hatlarına benzer, ancak bu sefer özel bir değer sunuyoruz. Herhangi bir Helm uygulamasını özelleştirmenin yolu budur.
Uygulamanın oluşturulması biraz zaman aldığından, biraz daha sabra ihtiyacımız var. Uygulama kapsayıcılarınızın durumunu denetlemek için bu komutu yürütebilirsiniz:
kubectl bakla olsun - izlemek
Komut buna benzer bir şey döndürür:
İ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ışana kadar ve hepsi 1/1 hazır olana kadar beklemek zorundasınız, ki bu benim durumumda yaklaşık 6 dakika sürdü.
Artık her şey tarayıcıyı açmaya ve yeni dağıtımımıza gitmeye hazır:
Redmine hazır
Tamamlayan
Kubernetes, uygulamaları dağıtmak için karmaşık bir araçtır, ancak Helm'in yardımıyla bu karmaşıklıktan geçtik (cinas amaçlı değil) ve Redmine'ın güvenilir bir kurulumunu gerçekleştirdik.
Bu kılavuzun bir özetini aşağıdaki git repo'sunda bulabilirsiniz: https://github.com/lcofre/redmine-on-k8s. Sıkışırsanız dosyalarınızla karşılaştırmaktan çekinmeyin.
Bazı kavramları karmaşık oldukları veya açıklama buluta özel olduğu için tartışmanın dışında bıraktık. Bunlar arasında uygulamanızın Canlılığı ve Hazırlığı, gelen posta yapılandırması ve daha fazla yükü kaldıracak şekilde ölçeklendirme bulunur. Lütfen aşağıda sizi en çok neyin ilgilendirdiğini bize bildirin, böylece ileride nasıl yapılır konusunu tartışabiliriz.
Nihai Redmine yükseltmesi mi? Kolay.
Tek bir yazılımda mükemmel proje planlaması, yönetimi ve kontrolü için tüm güçlü araçları edinin.