<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Kubernetes on Mitja Martini</title><link>https://mitjamartini.com/en/tags/kubernetes/</link><description>Recent content in Kubernetes on Mitja Martini</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>© 2026 Mitja Martini</copyright><lastBuildDate>Tue, 13 Jan 2026 18:21:46 +0200</lastBuildDate><atom:link href="https://mitjamartini.com/en/tags/kubernetes/index.xml" rel="self" type="application/rss+xml"/><item><title>From 8 Lines with Dokku to 200 with Kubernetes – Why I'm Still Switching</title><link>https://mitjamartini.com/en/posts/2026/01/from-8-lines-with-dokku-to-200-with-k8s/</link><pubDate>Tue, 13 Jan 2026 18:21:46 +0200</pubDate><guid>https://mitjamartini.com/en/posts/2026/01/from-8-lines-with-dokku-to-200-with-k8s/</guid><description>&lt;p&gt;So far, my web apps run on a Dokku server. I haven&amp;rsquo;t tried Vercel or Fly because I didn&amp;rsquo;t want to deal with complex pricing models that incur more costs with every additional project.&lt;/p&gt;
&lt;p&gt;Dokku works like Heroku:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dokku apps:create myapp
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dokku postgres:create myapp-db
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dokku postgres:link myapp-db myapp
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dokku config:set myapp &lt;span class="nv"&gt;APP_SECRET&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;openssl rand -base64 48&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dokku git:from-image myapp myregistry.example.com/image:tag
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dokku domains:set myapp myapp.mitjas.com
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dokku ports:set myapp http:80:8000 https:443:8000
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dokku letsencrypt:enable myapp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;It doesn&amp;rsquo;t get any simpler. After just 8 lines I have&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;an app on the server,&lt;/li&gt;
&lt;li&gt;a PostgreSQL DB with a user and password,&lt;/li&gt;
&lt;li&gt;the app linked to Postgres,&lt;/li&gt;
&lt;li&gt;a secret configured,&lt;/li&gt;
&lt;li&gt;the app deployed from a Docker image,&lt;/li&gt;
&lt;li&gt;a reverse proxy configured to forward HTTP and HTTPS to the app&amp;rsquo;s container, and&lt;/li&gt;
&lt;li&gt;TLS with certificates signed by Let&amp;rsquo;s Encrypt (including automatic renewal).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;With Kubernetes I need almost &lt;strong&gt;200 lines of YAML&lt;/strong&gt; for this. Why do I still want to switch to Kubernetes?&lt;/p&gt;
&lt;p&gt;Dokku is great for small projects that can make do with the Dokku plugins and run on a single server. But I believe Kubernetes is a better fit for me in the long run.&lt;/p&gt;
&lt;p&gt;Kubernetes manifests tell me (and LLMs) what&amp;rsquo;s running on the cluster, and I can continuously develop and improve them. Dokku, in contrast, feels like &amp;ldquo;fire, forget, and start from scratch.&amp;rdquo; Other advantages of Kubernetes like better scalability, more choice, and security are nice, too, but for me the most important advantage right now is:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Kubernetes is well-suited for Vibe Coding.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s my assumption, anyway. Let&amp;rsquo;s see how it goes.&lt;/p&gt;</description></item></channel></rss>