Kubernetes Installation¶
Kubernetes Installation describes Helm-based deployment of Emakin into a Kubernetes cluster.
The preserved documentation references the Emakin Helm charts repository at 6Kare/charts.
Prerequisites¶
- a working Kubernetes cluster
- Helm configured to access that cluster
Installation Workflow¶
1. Add the Helm Repository¶
1 2 | |
2. Install the Chart¶
Basic installation:
1 | |
Installation into a specific namespace:
1 2 3 4 5 | |
Helm Values and Parameters¶
Documented Default Values¶
- Host:
emakin.mycompany.com - Application Name:
mycompany.com - Environment:
production - split-service deployment enabled by default
web,agent,smtp,fulltext, andhostadmenabled by defaultmarketandpushdisabled by default
Configurable Parameters¶
| Parameter | Description | Default Value |
|---|---|---|
host | Hostname for the application | emakin.mycompany.com |
storageClass | Storage class for persistent volumes | nfs |
ingressClass | Ingress class for the ingress controller | nginx |
externalIP | External IP for the ingress controller | (none) |
environment | Environment name | production |
emakin.image.repository | Emakin container image repository | 6kare/emakin |
emakin.image.tag | Emakin container image tag | 8.5 |
emakin.subdomain | Subdomain for the application | emakin |
emakin.services.web.enabled | Enable web deployment | true |
emakin.services.web.replicaCount | Web replica count | 1 |
emakin.services.agent.enabled | Enable agent deployment | true |
emakin.services.agent.replicaCount | Agent replica count | 1 |
emakin.services.smtp.enabled | Enable SMTP deployment | true |
emakin.services.smtp.replicaCount | SMTP replica count | 1 |
emakin.services.fulltext.enabled | Enable full-text deployment | true |
emakin.services.fulltext.replicaCount | Full-text replica count | 1 |
emakin.services.hostadm.enabled | Enable host administration deployment | true |
emakin.services.hostadm.replicaCount | Host administration replica count | 1 |
emakin.services.hostadm.port | Port for host administration | 7180 |
emakin.services.market.enabled | Enable isolated Market deployment | false |
emakin.services.market.replicaCount | Market replica count | 1 |
emakin.services.market.port | Market HTTP port | 5100 |
emakin.services.market.serviceType | Kubernetes Service type for Market | ClusterIP |
emakin.services.push.enabled | Enable isolated Push deployment | false |
emakin.services.push.replicaCount | Push replica count | 1 |
emakin.services.push.port | Push HTTPS port | 5111 |
emakin.services.push.serviceType | Kubernetes Service type for Push | ClusterIP |
db.externalProvider | External database provider | Postgres |
db.externalConnection | Connection string for external database | (none) |
db.name | Database name | EMAKIN |
db.user | Database username | EMAKIN |
db.password | Database password | EMAKIN |
letsencrypt.enabled | Enable Let's Encrypt certificates | true |
letsencrypt.email | Email for Let's Encrypt certificates | (none) |
onlyoffice.enabled | Enable OnlyOffice document server | true |
onlyoffice.subdomain | Subdomain for OnlyOffice | oeditor |
tika.enabled | Enable Apache Tika server | true |
clamav.enabled | Enable ClamAV antivirus server | true |
Persistent Volumes¶
The preserved documentation states that the chart defines PVCs for:
- BaseX
- ClamAV
- Emakin application data
- PostgreSQL
It also notes that PVC names are suffixed with the environment value, for example:
basex-pv-productionclamav-pv-productionemakin-pv-productionpostgres-pv-production
Deployment Model¶
The chart creates separate Emakin Deployments for:
webagentsmtpfulltexthostadmmarket(optional)push(optional)
The chart invokes the Emakin agent executable in CLI mode with the module-specific commands:
webagentsmtpfulltextmarketpush
The host administration service is deployed as a dedicated pod and exposes only port 7180.
Market and Push use isolated Agent modes, so enabling either service does not start the normal web, HostAdmin, or worker surfaces in that pod. Both deployments include readiness and liveness probes against the internal health endpoint on port 5121.
Enable the optional services when required:
1 2 3 | |
Their Services default to ClusterIP; configure serviceType to match the required network topology. When license generation is used, mount the signing PFX and supply its password through a Kubernetes Secret. The automatic TLS listener certificate does not replace that signing certificate.
Runtime ports are Web 80/443, Market 5100, Push 5110/5111, FullText 5120, Health 5121, and Host Administration 7180.
Access After Deployment¶
Documented access points:
- Application:
http://<host> - Host Administration:
http://<host>:<emakin.services.hostadm.port>
Documented default credentials:
- username:
[email protected] - password:
admin
Overriding Default Ports¶
The preserved environment-variable examples are:
1 2 | |
Scaling or Disabling Individual Services¶
Disable SMTP:
1 2 | |
Scale agent workers:
1 2 | |