Ana içeriğe geç

Kubernetes Kurulumu

Kubernetes Kurulumu, Emakin'in Kubernetes kümesine Helm tabanlı dağıtımını açıklar.

Korunan belgelerde Emakin Helm grafikleri deposuna şu adresten başvurulmaktadır 6Kare/charts.

Ön Koşullar

  • çalışır durumda bir Kubernetes kümesi
  • bu kümeye erişecek şekilde yapılandırılmış Helm

Kurulum İş Akışı

1. Helm Deposunu Ekleyin

1
2
helm repo add emakin https://6kare.github.io/charts/
helm repo update

2. Grafiği Kurun

Temel kurulum:

1
helm install emakin-prod emakin/emakin

Belirli bir ad alanına kurulum:

1
2
3
4
5
helm install \
    --create-namespace \
    --namespace mynamespace emakin-prod emakin/emakin \
    --set host=mycompany.com \
    --set environment=production

Helm Değerleri ve Parametreleri

Belgelenen Varsayılan Değerler

  • Ana makine: emakin.mycompany.com
  • Uygulama adı: mycompany.com
  • Ortam: production
  • ayrık hizmet dağıtımı varsayılan olarak etkindir
  • web, agent, smtp, fulltext, ayrıca hostadm varsayılan olarak etkindir
  • market ve push varsayılan olarak devre dışıdır

Yapılandırılabilir Parametreler

Parametre Açıklama Varsayılan Değer
host Uygulamanın ana makine adı emakin.mycompany.com
storageClass Kalıcı birimler için depolama sınıfı nfs
ingressClass Ingress denetleyicisi için Ingress sınıfı nginx
externalIP Ingress denetleyicisi için harici IP (yok)
environment Ortam adı production
emakin.image.repository Emakin kapsayıcı görüntüsü deposu 6kare/emakin
emakin.image.tag Emakin kapsayıcı görüntüsü etiketi 8.5
emakin.subdomain Uygulamanın alt etki alanı emakin
emakin.configurationDataPath Düğüme özel özel yapılandırma, günlükler ve FullText verileri için isteğe bağlı yol /app/Configuration/Data
emakin.services.web.enabled Web dağıtımını etkinleştir true
emakin.services.web.replicaCount Web çoğaltma sayısı 1
emakin.services.agent.enabled Agent dağıtımını etkinleştir true
emakin.services.agent.replicaCount Agent çoğaltma sayısı 1
emakin.services.smtp.enabled SMTP dağıtımını etkinleştir true
emakin.services.smtp.replicaCount SMTP çoğaltma sayısı 1
emakin.services.fulltext.enabled Tam metin dağıtımını etkinleştir true
emakin.services.fulltext.replicaCount Tam metin çoğaltma sayısı 1
emakin.services.hostadm.enabled Ana makine yönetimi dağıtımını etkinleştir true
emakin.services.hostadm.replicaCount Ana makine yönetimi çoğaltma sayısı 1
emakin.services.hostadm.port Ana makine yönetimi bağlantı noktası 7180
emakin.services.market.enabled Yalıtılmış Market dağıtımını etkinleştir false
emakin.services.market.replicaCount Market çoğaltma sayısı 1
emakin.services.market.port Market HTTP bağlantı noktası 5100
emakin.services.market.serviceType Market için Kubernetes Hizmet türü ClusterIP
emakin.services.push.enabled Yalıtılmış Push dağıtımını etkinleştir false
emakin.services.push.replicaCount Push çoğaltma sayısı 1
emakin.services.push.port Push HTTPS bağlantı noktası 5111
emakin.services.push.serviceType Push için Kubernetes Hizmet türü ClusterIP
db.externalProvider Harici veritabanı sağlayıcısı Postgres
db.externalConnection Harici veritabanı için bağlantı dizesi (yok)
db.name Veritabanı adı EMAKIN
db.user Veritabanı kullanıcı adı EMAKIN
db.password Veritabanı parolası EMAKIN
letsencrypt.enabled Let's Encrypt sertifikalarını etkinleştir true
letsencrypt.email Let's Encrypt sertifikaları için e-posta (yok)
onlyoffice.enabled OnlyOffice belge sunucusunu etkinleştir true
onlyoffice.subdomain OnlyOffice alt etki alanı oeditor
tika.enabled Apache Tika sunucusunu etkinleştir true
clamav.enabled ClamAV antivirüs sunucusunu etkinleştir true

Kalıcı Birimler

Korunan belgelerde, grafiğin aşağıdakiler için PVC'ler tanımladığı belirtilmektedir:

  • BaseX
  • ClamAV
  • Emakin uygulama verileri
  • PostgreSQL

Ayrıca PVC adlarına şu değerin son ek olarak eklendiği belirtilmektedir: environment örneğin:

  • basex-pv-production
  • clamav-pv-production
  • emakin-pv-production
  • postgres-pv-production

Grafik emakin.configurationDataPath hem AK_CONFIGURATION_DATA_PATH hem de Emakin veri PVC bağlaması için aynı değeri kullanır. Varsayılan /app/Configuration/Data yol genellikle değiştirilmeden bırakılmalıdır. Yalnızca düğüme özel verilerin başka bir kalıcı konumda depolanması gerektiğinde üzerine yazın:

1
2
helm upgrade emakin-prod emakin/emakin \
    --set emakin.configurationDataPath=/mnt/emakin/data

Paylaşılan düğüm verilerini kullanan tüm Emakin dağıtımlarına (web, agent, SMTP, FullText, HostAdmin, Market ve etkinleştirildiğinde Push dahil) aynı yol ve PVC düzenlemesi uygulanmalıdır. Seçilen yol, kapsayıcı kullanıcısı tarafından yazılabilir olmalıdır. Değerin değiştirilmesi mevcut verileri otomatik olarak taşımaz; dağıtımı değiştirmeden önce mevcut verileri kopyalayın veya geri yükleyin.

Dağıtım Modeli

Grafik şu bileşenler için ayrı Emakin Dağıtımları oluşturur:

  • web
  • agent
  • smtp
  • fulltext
  • hostadm
  • market (isteğe bağlı)
  • push (isteğe bağlı)

Grafik, modüle özgü komutlarla Emakin agent yürütülebilir dosyasını CLI modunda çağırır:

  • web
  • agent
  • smtp
  • fulltext
  • market
  • push

Ana makine yönetimi hizmeti özel bir pod olarak dağıtılır ve yalnızca şu bağlantı noktasını kullanıma açar: 7180.

Market ve Push yalıtılmış Agent modlarını kullanır. Bu nedenle bu hizmetlerden birinin etkinleştirilmesi, o podda normal web, HostAdmin veya çalışan arabirimlerini başlatmaz. Her iki dağıtımda da şu bağlantı noktasındaki dahili sağlık uç noktasına yönelik hazır olma ve canlılık araştırmaları bulunur: 5121.

İsteğe bağlı hizmetleri gerektiğinde etkinleştirin:

1
2
3
helm upgrade emakin-prod emakin/emakin \
    --set emakin.services.market.enabled=true \
    --set emakin.services.push.enabled=true

Hizmetleri varsayılan olarak ClusterIPolarak ayarlanmıştır; gerekli ağ topolojisine uyacak şekilde serviceType yapılandırın. Lisans oluşturma kullanıldığında, imzalama PFX dosyasını bağlayın ve parolasını bir Kubernetes Secret aracılığıyla sağlayın. Otomatik TLS dinleyici sertifikası, imzalama sertifikasının yerini tutmaz.

Çalışma zamanı bağlantı noktaları: Web 80/443, Market 5100, Push 5110/5111, FullText 5120, Health 5121ve Host Administration 7180.

Dağıtım Sonrası Erişim

Belgelenen erişim noktaları:

  • Uygulama: http://<host>
  • Ana makine yönetimi: http://<host>:<emakin.services.hostadm.port>

Belgelenen varsayılan kimlik bilgileri:

Varsayılan Bağlantı Noktalarını Geçersiz Kılma

Korunan ortam değişkeni örnekleri:

1
2
AK_Web__Kestrel__Endpoints__Http__Url=http://*:8080
AK_Web__Kestrel__Endpoints__Https__Url=https://*:8443

Tek Tek Hizmetleri Ölçeklendirme veya Devre Dışı Bırakma

SMTP'yi devre dışı bırakma:

1
2
helm upgrade emakin-prod emakin/emakin \
    --set emakin.services.smtp.enabled=false

Agent çalışanlarını ölçeklendirme:

1
2
helm upgrade emakin-prod emakin/emakin \
    --set emakin.services.agent.replicaCount=3