Mattermost Kubernetes Operator vs Linux install

The Kubernetes Operator with S3-compatible storage and a managed database suits teams that already run Kubernetes and need high availability. A single Linux binary on PostgreSQL suits smaller, single-node deployments that the team can patch and back up without a cluster to operate.

On this page

Which Mattermost deployment model fits your team

The Kubernetes Operator pays off when your organization already runs clusters and needs high availability; otherwise the single Linux binary with PostgreSQL is a valid production path. The Operator is the path Mattermost recommends for most Kubernetes and cloud-native production deployments, pairing the application with S3-compatible storage and a managed database service. The gating matters before any architecture discussion: the Kubernetes deployment is available on the Entry, Enterprise and Enterprise Advanced plans but not on Professional, and high availability clustering is limited to Enterprise and Enterprise Advanced. If you are on Professional, the Operator is not an option, and HA is out of reach on either hosting model.

Kubernetes earns its operating cost mainly where a platform team already patches clusters, manages etcd backups, and enforces pod security and secrets handling. Those duties exist whether or not Mattermost runs on the cluster, so the marginal cost of adding one more workload is lower for a team that already does them. A small team without that capacity takes on the control plane, load balancers and storage classes as new work. We cannot give you a team-size threshold, because the answer depends on your operating capacity and your HA requirements. Ask Mattermost to confirm which plan you need for your user count, which storage types they have tested for filestores on Kubernetes volume mounts, and whether their support covers your cluster distribution.

Decide on the file store before you decide on the platform. An HA cluster needs shared file storage on Amazon S3, an S3-compatible service or NAS mounted on each node, because local file system storage will not work correctly and risks corrupting files. Mattermost also recommends an NFS volume when filestores use Kubernetes volume mounts and notes that not all persistent volume types have been tested. Confirm the storage design in writing with Mattermost and your cluster provider, and treat the choice of object storage or NFS as a risk to plan for, not a detail to settle later. Check the Mattermost Kubernetes deployment guide against your own storage and plan entitlements before you commit.

Operator on Kubernetes vs Linux install, factor by factor

This table compares the Mattermost Kubernetes Operator with S3-compatible storage and a managed database against a single Linux binary with PostgreSQL. Read each row as a decision point: the left column names the factor, and the cells show what each path asks of your team. The main takeaway is that the Operator path adds cluster operation work and buys high availability only on the Enterprise tiers.

FactorKubernetes OperatorLinux install
Plan requirementAvailable on Entry, Enterprise and Enterprise Advanced, not ProfessionalAvailable on the plans you buy, including Professional; confirm feature gates with Mattermost
High availability eligibilityRequires Enterprise or Enterprise Advanced for the HA cluster designHA clustering is also limited to Enterprise and Enterprise Advanced
File storage for HAShared storage on Amazon S3, an S3-compatible service or NAS mounted on each nodeShared S3, S3-compatible or NAS storage is required for any HA cluster
File storage for single nodeMattermost recommends an NFS volume if filestores use Kubernetes volume mounts; test other volume typesLocal filesystem storage works for a single node; back it up on your own schedule
DatabaseManaged database service recommended by Mattermost for most production cloud-native deploymentsSelf-run PostgreSQL, including backups, patching and replica setup
Upgrade pathOperator-driven rollout within the cluster, plus Kubernetes control plane and node upgradesReplace the binary and run database migrations on the host; monthly server releases and ESR tracks apply
Required skillsKubernetes operation, storage classes, secrets handling, and cloud database administrationLinux administration, PostgreSQL administration, reverse proxy and TLS management
Licensing contextCompiled binaries under MIT; custom builds' source under AGPL v3.0; paid plans add featuresSame licensing; the install method does not change which features a plan unlocks
Cost driversCluster footprint, managed database and object storage, and the people who run the platformHost sizing, database operations time, and the people who run the platform
Team size where Kubernetes pays offUsually a platform team already running Kubernetes for several services; confirm the fit with your own workloadOften sufficient for smaller teams without an existing cluster; confirm capacity and HA needs first

Why file storage decides whether HA is possible

A Mattermost high availability cluster cannot run on local disk. Every application node needs shared file storage, either Amazon S3, an S3-compatible service or a NAS mounted on each node. Mattermost states that local file system storage will not work correctly and risks corrupting files. Before you price the Enterprise plan that unlocks high availability, confirm with your storage team that the bucket or NAS share is reachable from every node at the same time, that it is backed up and that its latency and throughput suit uploads and previews from your largest channels. The same storage question applies whether you run the Operator or a Linux install, so settle it first.

Kubernetes adds a second decision. Mattermost recommends an NFS volume when filestores use Kubernetes volume mounts, and it notes that not all persistent volume types have been tested. If your platform team plans to back the filestore with a storage class from a cloud or on-premises CSI driver, ask Mattermost in writing whether that volume type is in its tested set, and ask your storage team how the NFS export handles permissions for the user the pods run as. Treat an untested volume type as a risk to plan around, not as a supported option. Where the Operator's storage path is not yet proven in your environment, a Linux install with shared storage avoids that dependency on Kubernetes volume behavior.

Ask for three things before committing: the list of tested persistent volume types for your Kubernetes version, the S3 or NAS configuration Mattermost expects for your node count, and a documented restore test for the file store alongside the PostgreSQL backup. Your own environment decides the answer. Run a file upload and download test from two nodes at once, then a restore into a separate namespace or host, and record the results. If any step fails or cannot be confirmed in writing, the high availability requirement is not met yet.

What each deployment is made of

Both paths run the same Mattermost server, but they assign state, redundancy and cluster operations to different parts of your stack. The cards below separate what Mattermost itself needs from what a Kubernetes cluster adds, so you can count the components you will own before you pick a path.

Linux single binary with PostgreSQL

Mattermost runs as one Go binary on a Linux host, with PostgreSQL as its database and local or mounted file storage for uploads. Your team owns the host, the operating system patches, the PostgreSQL server, backups and the reverse proxy. Confirm that your file storage is local and backed up as part of the host, since high availability later depends on moving files off the node. Mattermost's Team Edition and Entry mode run on this path without the Kubernetes plan requirement.

Operator with S3-compatible storage

Mattermost recommends its Kubernetes Operator for most Kubernetes and cloud-native production deployments, paired with S3-compatible object storage for files and a managed database service. Storage for uploads moves out of the pods, so nodes can be replaced without losing attachments. The Operator is available on the Entry, Enterprise and Enterprise Advanced plans, not on Professional, so confirm your plan before you design around it. Ask what the managed database service costs and which backup and restore tooling it provides.

High availability layer

High availability adds redundant application servers, redundant database servers and redundant load balancers. It is available only on the Enterprise and Enterprise Advanced plans, so a Professional subscription cannot run it regardless of platform. The cluster needs shared file storage on Amazon S3, an S3-compatible service or NAS mounted on each node, and local file system storage will not work correctly and risks corrupting files. Check that your storage meets that rule before you commit to a multi-node design.

Read and search replicas

Database read replicas and search replicas spread read traffic to scale concurrent users and reduce latency, while writes still go to the primary database. This layer matters once your user count and search load outgrow one primary, and it adds a second database to monitor and fail over. Ask your database provider how replica lag is measured and alerted, because a lagging replica can show stale messages. Replicas belong to the high availability design, so the same plan requirement applies.

Kubernetes control plane you run

A self-run cluster adds etcd, kube-apiserver and a TCP load balancer on port 6443 in front of the API servers, following the kubeadm high availability guide. That guide calls for at least three control plane nodes and etcd with an odd number of members, with five recommended for production. You also need an etcd backup plan using etcdctl snapshot save and a tested restore with etcdutl. Many teams avoid this work by using a managed Kubernetes service, so confirm who patches and backs up the control plane before you choose.

Secrets handling in Kubernetes

Kubernetes stores Secrets unencrypted in etcd by default, so database credentials, S3 keys and SSO client secrets are exposed to anyone who can read etcd or list Secrets through the API. Configure encryption at rest, restrict list and watch access with least-privilege RBAC, or pull secrets from an external store through the Secrets Store CSI Driver. Confirm which of these controls your cluster uses before you put production credentials in it. This responsibility does not exist on the Linux path in the same form.

How upgrades differ across the two models

Mattermost publishes a new server version in binary form on the 16th of each month, so both deployment models receive the same application code on the same schedule. Support windows matter more than the release date itself. Per the Mattermost server releases page, v12.0 was released on 2026-10-16 with support ending 2027-01-15, and v11.11 was released on 2026-09-16 with support ending 2026-12-15. The Extended Support Release v11.7 was released on 2026-05-15 with support ending 2027-05-15, and the previous ESR, v10.11, reached end of life on 2026-08-15.

  • Monthly releases: New server versions arrive on the 16th of each month, which sets a predictable rhythm for test and production windows.
  • Standard support window: v11.11 support ends 2026-12-15, so a team on it must move forward before that date.
  • Current major line: v12.0 support ends 2027-01-15, a short window that favors teams planning frequent upgrades.
  • ESR track: v11.7 carries support to 2027-05-15, which suits teams that want fewer upgrade events.
  • Expired ESR: v10.11 reached end of life on 2026-08-15, so any remaining installs on that line should be scheduled for upgrade now.

Confirm with Mattermost which build and support tier applies to your plan before choosing a track, and check the release page again before each planned window.",

Backups, monitoring and skills each model requires

This table compares what each model asks your team to back up, watch, staff and carry on call. Read it as a checklist of operating duties: the Operator adds a Kubernetes control plane and etcd to the list, while the Linux install concentrates effort on the application host, PostgreSQL and shared file storage. Confirm each item against your own environment before committing.

AreaKubernetes Operator with S3 and managed databaseSingle Linux binary with PostgreSQL
Backup scopeManaged database backups, S3-compatible file storage, Kubernetes manifests and Operator configuration, plus etcd state if you run the cluster yourselfPostgreSQL dumps or snapshots, the file store, and the server configuration file
etcd backupsTake snapshots with etcdctl snapshot save and rehearse restores with etcdutl. Confirm whether your managed Kubernetes service handles this for youNot applicable
Cluster topologyKubernetes recommends an odd number of etcd members, with five members in production, so plan for that count if you self-manage the control planeOne application host plus a database, with redundancy added only where your Mattermost plan supports it
Secrets handlingKubernetes stores Secrets unencrypted in etcd by default. Confirm encryption at rest, least-privilege RBAC and any external secrets store with your platform teamDatabase credentials and configuration secrets kept on the host or in your secrets tool, with file permissions and access controls set by your team
Monitoring pointsNode and pod health, control plane components, database metrics, S3 request errors, ingress and certificate expiry, plus Mattermost application metricsHost CPU, memory and disk, PostgreSQL health and replication lag, Mattermost service status, file store capacity and TLS expiry
On-call exposureFailures can sit in the cluster, the Operator, networking, storage classes or the managed database, so on-call must triage across layersFailures mostly sit on one host, the database or the file store, which narrows triage but leaves no automatic failover unless you build it
Team skillsWorking knowledge of Kubernetes, RBAC, persistent volumes, etcd recovery and upgrade sequencing, in addition to Mattermost administrationLinux administration, PostgreSQL operations, reverse proxy and TLS management, and Mattermost administration
Upgrade effortCoordinate Kubernetes version skew rules with Mattermost releases, which ship on the 16th of each month, and test each change in a non-production clusterReplace the binary and run database migrations on a maintenance window, with a tested rollback path
Who to confirm withYour platform team, your managed Kubernetes provider and Mattermost support for supported storage types and plan entitlementsYour database administrators and Mattermost support for supported PostgreSQL versions and file storage configuration

When the Kubernetes overhead pays off

The Operator adds a cluster to run, patch and back up, so it only pays off when that cost is already carried by a platform team or when the deployment needs controls a single Linux host cannot provide. The cards below set out the conditions that tip the decision and the checks to run before committing.

Platform staff already run clusters

If your organization already operates production Kubernetes with people on call for it, the Mattermost Operator mostly adds one more workload to a system you already maintain. If no one on your team can troubleshoot a control plane, etcd or ingress, a Linux install with PostgreSQL is easier to keep running. Ask who owns cluster upgrades and whether that team has capacity for Mattermost on top of its current services.

High availability on Enterprise plans

Mattermost high availability, with redundant application servers, database servers and load balancers, is available only on the Enterprise and Enterprise Advanced plans. The Operator is the path Mattermost recommends for most production Kubernetes deployments, and it is not offered on Professional. Confirm the plan and seat count with Mattermost before designing for HA, since the plan decides whether the Operator is available to you at all.

Fit with GitOps and cluster policy

Where cluster-wide policy already governs workloads, the Operator lets Mattermost follow the same rules as everything else. Check that the namespace meets your Pod Security Standards level, that service accounts and RBAC follow least privilege, and that Mattermost manifests live in the same GitOps repository and review process as the rest of your platform. A standalone Linux host sits outside these controls unless you build them yourself.

Small single-team deployment

For one team with modest scale and no cluster in place, a single Linux binary on PostgreSQL is usually the shorter path to a working chat service. You avoid running etcd backups, control plane upgrades and a shared storage layer for a few users. Revisit the decision if the team later needs HA, separate scaling of components, or policy enforcement across many workloads.

Air-gapped or regulated ownership

In an air-gapped or heavily regulated network, the team must document and operate every layer, including the cluster, its secrets and its images. Kubernetes stores Secrets unencrypted in etcd by default, so encryption at rest and tight RBAC must be configured and evidenced. Confirm that the Operator, its images and its S3-compatible storage can run offline in your environment, and that Enterprise Advanced air-gapped support covers your topology.

Questions buyers ask before choosing a Mattermost deployment model

Can a Linux install of Mattermost be highly available?

Yes, but only on the Enterprise or Enterprise Advanced plans, and only with shared file storage. Mattermost high availability uses redundant application servers, redundant database servers and redundant load balancers. Each node must mount shared storage, such as Amazon S3, an S3-compatible service or a NAS. Local file system storage does not work correctly in a cluster and risks corrupting files, so adding Linux hosts with local disks does not create high availability. Database read replicas and search replicas can add scale, with reads distributed across replicas and writes sent to the primary. Confirm the plan, storage layout and load balancer design against the Mattermost high availability documentation before you size the environment.

Does the Mattermost Kubernetes Operator require an Enterprise plan?

No, but it is not available on every plan. Mattermost lists its Kubernetes deployment on the Entry, Enterprise and Enterprise Advanced plans and not on Professional, so a Professional subscription cannot use this path. Entry is the free mode of Enterprise Edition. Running the Operator does not by itself provide high availability, because the cluster features that depend on a paid plan still apply. Mattermost recommends the Operator with S3-compatible storage and a managed database service for most production Kubernetes deployments. Confirm which features the Entry mode includes against the current plan documentation before you commit to a design.

What drives cost on the Linux install and the Kubernetes path?

Mattermost sells prepaid annual subscriptions based on seat licenses, and its pricing page lists no public prices, so the license line comes from a sales quote. Infrastructure and labor are separate costs that you pay directly. On the Linux path, the main costs are the hosts, PostgreSQL, the load balancer, shared storage for high availability and the staff who patch and back up the system. On the Kubernetes path, add control plane nodes, etcd backups, an ingress layer, monitoring and cluster upgrades. Ask any quote to state the seat count, plan, support tier, what is included in each plan, and which cloud resources are assumed.

How long does a Mattermost deployment take, and what does the team need?

No duration figure is supplied for this work, so the reliable answer comes from the written scope. Most engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before work starts. Ask the provider to list the environments, storage design, database, identity integration, testing, cutover and handover tasks, and the team members each task depends on. On the Linux path, the team needs Linux administration and PostgreSQL skills. On the Kubernetes path, it also needs cluster operations, cloud storage and database administration, and an on-call process. Ask for the assumptions the timeline depends on, such as the number of environments and the state of existing identity systems.

Can our team run a Mattermost deployment without outside help?

Many teams can, if they already have the skills for the platform they choose. The Linux path has fewer moving parts. The Kubernetes path requires cluster skills: a kubeadm high availability control plane uses at least three control plane nodes, etcd needs a backup plan and an odd number of members, and Secrets are stored unencrypted in etcd by default unless you configure encryption at rest. Kubernetes upgrades must go one minor version at a time, and each minor release receives about one year of patch support. Mattermost publishes server binaries on the 16th of each month, and v11.7 is an Extended Support Release supported until 2027-05-15. DeployOpen can plan, implement, harden, back up, upgrade, document and support the platform, and ongoing support is available as a retainer.

When does Kubernetes pay off for a Mattermost team?

Kubernetes pays off when the team already operates a cluster and can spread the platform work across existing people and tooling. No team size threshold is supplied, so ask the provider and your own platform team to test the decision against your numbers. Illustrative example: a group that already runs a cluster for other services, with staff who handle upgrades and monitoring, may find the added work for Mattermost is small. A team with one Linux administrator and no cluster experience usually finds the Linux install easier to run. Consider the number of environments, the need for multi-node high availability, your cloud standards and the cost of keeping cluster skills current.

Can we move from a Linux install to Kubernetes later, and what changes?

A move is possible, but it should be planned as a migration. File storage changes most: Mattermost recommends an NFS volume when filestores use Kubernetes volume mounts and notes that not all persistent volume types have been tested, so confirm your storage class before cutover. The database may move to a managed service, and the configuration and license must carry over. Plan DNS and TLS changes, test restores from backup and rehearse the cutover on a copy of the data. Mattermost's Kubernetes deployment documentation lists the supported storage and database options. No migration duration is supplied, so ask for a written scope with a rollback plan before work begins.

What it costs to move between the two models later

Moving from a Linux install to the Operator later is mostly a database and file storage exercise, and the cost depends on what you set up on day one. The Linux path keeps PostgreSQL on a server you manage and typically stores uploads on local disk. The Operator path expects a managed database service and S3-compatible storage. Each side has to move: the database dump and restore, the files in the filestore, and the server configuration that points at them. Local file system storage does not work for a high availability cluster, so if you ever plan to run HA, the filestore should already sit on Amazon S3, an S3-compatible service or a NAS mounted on each node. If it does, the later move is largely a database and configuration task. If it does not, you will migrate files and change the storage model at the same time, which is the harder project.

Users, teams, channels and most settings carry over with the database, but the parts that live outside it need a checklist. Confirm that the config.json values for file storage, database connection, SSO and email are reproduced in the Operator's custom resource rather than copied blindly, because the file paths and hostnames change. Plan for session and signing secrets to be moved deliberately, since a change there logs users out or breaks integrations. Mattermost's SSO and AD/LDAP settings tie to identity providers and hostnames, so test login against a staging copy before cutover. Search indexes and integrations may need rebuilding or re-registration, and you should inventory both before scheduling.

Downtime planning is the largest variable, and it is set by how much data you move and how long you can freeze writes. Plan a maintenance window that stops writes to the old server, takes a final database backup, syncs the filestore, starts the new deployment and then validates users, uploads and notifications before reopening access. Keep the old install intact until you have confirmed a clean restore and rollback path. Confirm the exact migration procedure, supported starting versions and any required upgrade steps with the Mattermost Kubernetes deployment documentation before you schedule anything, and ask for a written downtime estimate that matches your data volume.

How DeployOpen scopes and delivers a Mattermost deployment

The sequence turns a chosen Mattermost model into a written, fixed-scope plan, then a hardened deployment inside the client's own infrastructure that is documented, backed up and kept current under a support arrangement the client agrees in advance.

  1. Confirm the deployment model and plan edition

    DeployOpen reviews the team size, Kubernetes or Linux preference, identity provider, compliance obligations and whether high availability or air-gapped operation is required. The client confirms the Mattermost plan with Mattermost, since the Kubernetes deployment is available on Entry, Enterprise and Enterprise Advanced but not on Professional, and high availability requires Enterprise or Enterprise Advanced. The step is done when the model and plan are recorded in a written scope draft that the client has reviewed.

  2. Agree scope, deliverables and timelines in writing

    DeployOpen turns the draft into a fixed-scope proposal listing deliverables, responsibilities, client-provided items such as cloud accounts, DNS, certificates and a licensed Mattermost subscription, and the timeline agreed for each phase. Work does not start until both parties sign. DeployOpen does not publish a price list, so the written scope is the basis for the quote. The step closes with a signed scope document.

  3. Design storage, database and network layout

    For the Operator path, DeployOpen designs the S3-compatible object storage, the managed database service and the Kubernetes volumes, following Mattermost guidance that an NFS volume is recommended when filestores use Kubernetes volume mounts and that not all persistent volume types have been tested. For the Linux path, the design covers PostgreSQL and shared file storage for any high availability cluster, since local file storage will not work correctly across nodes. The step closes with an architecture document the client approves.

  4. Implement and harden inside the client environment

    DeployOpen installs Mattermost in the client's cloud account, data center or air-gapped network, then applies hardening: secrets handling, network policies, pod security settings for Kubernetes, least-privilege access to the database and storage, and encryption at rest where the platform supports it. For Kubernetes, Secrets are unencrypted in etcd by default, so encryption at rest and restricted access are configured explicitly. The step closes with a test report and a hardening checklist signed off by the client's security owner.

  5. Integrate identity and storage

    DeployOpen connects SSO through SAML, OIDC or OAuth and AD/LDAP user sync where the chosen plan includes them, then verifies login, deprovisioning and role mapping with test accounts. Storage and database connections are tested for failover behavior and read replica use where the plan supports it. The step closes when a test matrix for identity and storage has passed and the results are filed with the scope.

  6. Document, back up and rehearse recovery

    DeployOpen delivers runbooks for installation, configuration, upgrades, backups and restore. Backups cover the database, file storage and, for Kubernetes, the etcd snapshot process and the Helm or Operator configuration. A restore is rehearsed in a separate environment so the client knows the recovery steps work. The step closes with a documented restore test and a signed handover.

  7. Plan upgrades and provide ongoing support

    Mattermost publishes server versions on the 16th of each month and offers Extended Support Releases with fixed end dates, so DeployOpen agrees an upgrade calendar that matches the client's support window. Kubernetes adds its own cycle and version skew rules, which the upgrade plan follows. Ongoing support, upgrades and continuous testing are available as retainers, and their scope, response expectations and fees are set out in a separate written agreement. The step closes when the first upgrade has been rehearsed and the retainer terms, if any, are signed.

Sources and further reading

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.