Scaling mattermost with Teams Edition and Kubernetes

Hello Mattermost Community,
I’m working on scaling my Mattermost Teams Edition deployment in Kubernetes. I’ve successfully increased application instances, but I’d like to proactively address potential issues. Could you please share best practices or common pitfalls regarding:

  • Stateful Sessions: What strategies are recommended for managing user sessions and state across multiple app instances?
  • Database Optimization: How can I optimize database interactions when multiple app instances are involved?
  • License Compliance: Are there specific license considerations to keep in mind when scaling Mattermost Teams Edition horizontally?

Any advice would be greatly appreciated!

Horizontal scaling requires the Enterprise edition of Mattermost. Pricing | Mattermost

Thanks John for your quick response to the question.
I would seek more clarification here, Does this mean horizontal scaling does not fit under AGPL License policy for Teams edition or is this technically not possible with current open source code base?

I also managed to installed multiple instances on k8s,
but I’v noticed an issue with channel updates.
When two users are connected to different pods, using the app, they don’t see each other messages, using the browser, they do but only after refresh.

Have you had those kind of problems?

That’s EXACTLY what I’d expect to see.

If you want to scale horizontally, you have to have an Enterprise license. Or much around in the source code until you cobble together something that nobody else will ever be able to support.

There is nothing in the docs about “kubernetes only for enterprise” and im kinda shocked to read this now because at the moment im working on the same thing - team edition on kubernetes.
I know that the calls without rtcd is not supported, which requires an enterprise license.
But about the rest?
The operator is tagged with “available on all plans”

I need to work without the operator because of other issues but that should not stop the mission.

Are the docs wrong? Do I understand something wrong?

@Movion it isn’t so much as “kubernets is only for Enterprise”… you absolutely can run Pro or free on k8s. The issue is scaling horizontally requires Enterprise. If you scale out your Mattermost deployment with a free or Pro subscription, funny / bad things can happen because those nodes cannot talk to each other to maintain database integrity.

If you don’t intend to scale, you’re fine. But since the whole point of k8s is scalability, I tend to talk about this very emphatically!

I understand. Thank you.

Can you explain how Enterprise Instances needs to be configured so they can talk to each other without problems when scaling horizontally

Take a look at High availability cluster - Mattermost documentation and Enable high availability mode - Mattermost documentation

1 Like