Running Django in Kubernetes IPv6 only

Posted on 2021-12-19 by ungleich


At ungleich we run quite some amount of Django applications, some for ourselves, some on behalf of our customers. Most of them are currently running "natively" on virtual machines. Our objectives are to

  • Slowly move our own workload into IPv6 only kubernetes clusters
  • Slowly move our customer applications into IPv6 only kubernetes clusters
  • Offer modern Django Hosting based on Kubernetes

Status 2021-12-19: initial design phase

At the moment we are looking into what we require for running Django applications inside Kubernetes. Some parts are still open, some are already set:

  • PostgreSQL as the database: this is our standard so far and we don't plan to change it

Undefined at the moment:

  • Where/how to generate and serve static files
    • Same container?
    • Separate container?
  • Backup sidecare
    • Restic?
    • pg_dump?
    • media / upload files
  • App server
    • uwsgi
    • (g)unicorn

One container providing port 80

  • The outside world does not need to know what is running inside
  • Thus the django container should:
    • Expose port 80
    • Serve staticfiles on its own
  • One can use any of the wsgi/asgi servers
    • Will provide example for some of them

Follow up

If you are interested in Kubernetes or Django, feel free to join us on our open chat.