Update distributed stateful elixir apps in kubernetes

There’s no library for deployment in k8s.You deploy your application as any other. What differs is the way you join nodes in a cluster. If that’s what you’ve meant, then libcluster is your friend.

I am not using anything special other than a Deployment resource on Kubernetes to run my applications.
But there are a couple of libraries worth mentioning making integrating Kubernetes into your application a walk in the park:

And worth mentioning is supporting software that are not Erlang/Elixir specific, but really leverage your Kubernetes experience:

7 Likes

Thx for the reply,
and I just found this article https://www.theguild.nl/real-world-phoenix-lets-d4y-using-k8s/

I would investigate most other ingress solutions before reaching for Traefik in a business context - Nginx Ingress and ALB Ingress are my personal recommendations. Ambassador is so-so and getting better, Istio is not just ingress and is a huge project to bite off besides, and I haven’t used any of the other Envoy-based ones in anger.

Traefik predates Kube and was never that good in its early days, and trying to support so many environments means it simply can’t embrace Kubernetes abstractions to the degree a single-purpose Kube-native project can achieve. It’s fine for home labs and POCs.

1 Like

@shanesveller like with all recommend/experience posts, YMMV.

But I have to emphasize that I am running a couple high traffic websites/applications behind traefik, one of them a mid-sized micro-service landscape.
Traefik in a business and production setting has served me well since 1.x and I am now on 2.x.

The statement that traefik predates Kubernetes is somewhat sonsensical to me. AWS LBs, Nginx, etc predate Kubernetes and people have managed to adapt to it.

Admittedly I did not have the “easiest” time in the beginning with traefik, but that is due to the documentation that lacks some holistic examples. However, now having my declarations set, Traefik is humming along really really well.