How to setup Hetzner load balancer on a Kubernetes cluster

JM Robles
4 min readAug 22, 2020

TL;DR: Recently (June 2020) Hetzner added a cloud native load balancer with Kubernetes support. Learn how to use it.

We finally have load balancer in Hetzner!

Introduction

Until a couple of months ago (June 2020) Germany Hetzner Cloud provider did not have a native cloud load balancer in its portfolio.

To achieve a “LoadBalancer” service in an Hetzner Kubernetes cluster you must to use a software solution like as MetalLB.

I wrote this previous post about how to create a Rancher Kubernetes cluster on Hetzner cloud using MetalLB.

Now we are going to see how to create a Kubernetes cluster using the new Load Balancer service already available in Hetzner.

Hetzner Load Balancer at glance

The new and claimed Load Balancer (LB) service has a entry level price of 4.9€/mo. Not so bad.

For that price you have a LB with a traffic support up to 20 TB/mo, 5 services (“ports”) and 25 targets (nodes). It’s enough for small/medium production services.

For more details visit “Load Balancer — Hetzner Online GmbH”.

Hetzner has its own Kubernetes cloud controller manager and now includes the LB support.

Cloud provider

As probably you know, Kubernetes implements by default the major cloud providers: AWS, Azure, GCP, …

This let’s to create or destroy new nodes, volumes or load balancers on demand.

For the rest of cloud providers, Kubernetes includes a interface that the cloud provider must implement to give support it.

In this case, when we create the cluster we must specify the cloud provider as external and later apply the 3th-party cloud-controller-manager manifest (Hetzner in our case).

Cluster creation

--

--

JM Robles

Backend / Platform engineer #go #python #kubernetes #terraform #devops