<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>MetalLB - Tag - vo.rs</title><link>https://vo.rs/tags/metallb/</link><description>MetalLB - Tag - vo.rs</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.</copyright><lastBuildDate>Tue, 20 Feb 2024 09:00:00 +0000</lastBuildDate><atom:link href="https://vo.rs/tags/metallb/" rel="self" type="application/rss+xml"/><item><title>MetalLB and Kubernetes Bare-Metal Networking: LoadBalancers Without a Cloud</title><link>https://vo.rs/story/metallb-and-kubernetes-bare-metal-networking-loadbalancers-without-a-cloud/</link><description>&lt;p&gt;The first thing that goes wrong when you build a Kubernetes cluster on your own hardware is the most anticlimactic possible failure. You deploy something, set its Service type to &lt;code&gt;LoadBalancer&lt;/code&gt; the way every tutorial told you to, and then&amp;hellip; nothing. &lt;code&gt;kubectl get svc&lt;/code&gt; shows &lt;code&gt;EXTERNAL-IP&lt;/code&gt; stuck on &lt;code&gt;&amp;lt;pending&amp;gt;&lt;/code&gt;, forever, with the quiet patience of a thing that is never going to happen.&lt;/p&gt;
&lt;p&gt;This is not a bug. On a cloud provider, &lt;code&gt;type: LoadBalancer&lt;/code&gt; is a request that the cloud&amp;rsquo;s controller fulfils by provisioning an actual load balancer and handing you a public IP. On bare metal there is no cloud controller listening, so the request just sits there. MetalLB is the missing piece: it implements that controller for your own network, so a homelab or on-prem cluster can finally do the thing the cloud does for free.&lt;/p&gt;</description><pubDate>Tue, 20 Feb 2024 09:00:00 +0000</pubDate></item></channel></rss>