# Loadbalancing

## Wie funktionierts?

Standard mässig verwendet k3s die Software "klippert" als Loadbalancer, dieser erstellt sich als dämon set auf dem Cluster, wenn ein Service via Loadbalancer veröffentlicht wird.

## Verwendung eines anderen Loadbalancer

Wenn ein anderer Loadbalancer wie Beispielsweise Metallb verwendet werden möchte, muss klippert entfernt, bzw. deaktiviert werden.

### Klippert deaktivieren

Da k3s kubernetes in einem Binary ist, sollte Klippert beim Start des Servers (Binary) mittels Argument deaktiviert werden. Verwenden Sie dazu das extra Argument "<span style="font-family: monospace;"><span style="color: #000000; background-color: #ffffff;">--disable servicelb". Dies können Sie im SystemD-Service File unter "ExecStart" hinzufügen.</span></span>

### <span style="font-family: monospace;"><span style="color: #000000; background-color: #ffffff;">/etc/systemd/k3s.service</span></span>

<span style="font-family: monospace;"><span style="color: #000000; background-color: #ffffff;">Das zusatz Argument finden Sie auf der 10ten Zeile.</span></span>

```shell
[Unit]
Description=Lightweight Kubernetes
Documentation=https://k3s.io
After=network-online.target

[Service]
Type=notify
ExecStartPre=-/sbin/modprobe br_netfilter
ExecStartPre=-/sbin/modprobe overlay
ExecStart=/usr/local/bin/k3s server --data-dir /var/lib/rancher/k3s --disable servicelb
KillMode=process
Delegate=yes
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=1048576
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
TimeoutStartSec=0
Restart=always
RestartSec=5s

[Install]
WantedBy=multi-user.target
```