K3s のロードバランサー (Klipper LB) の無効化

このページには K3s に組み込まれているロードバランサーである Klipper LB の無効化する方法について書かれています。

Klipper Load Balancer #

K3s には Klipper Load Balancer (LB) というロードバランサーが組み込まれており、オンプレ環境でも簡単に LoadBalancer Service を作成することができます。

公式ドキュメントで説明しているように MetalLB など異なるロードバランサーを動かしたい場合は Klipper LB を無効化する必要があります。

Klipper LB の無効化手順 #

Klipper LB は次のように svc から始まる DaemonSet として動いています。

$ sudo kubectl get ds -n kube-system
NAME            DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
svclb-traefik   2         2         2       2            2           <none>          11h

ひとつのコマンドで Klipper LB を無効化するには次のコマンドを使えばよいです。

$ curl -sfL https://get.k3s.io | sh -s - server --disable servicelb

上記コマンド実行後に、再度 DaemonSet のリソースを確認すると次のように svc から始まるリソースがなくなっていることが確認できます。

$ sudo kubectl get ds -n kube-system
No resources found in kube-system namespace.

なお、再度 Klipper LB を動かす場合は次のコマンドでクラスターを起動し直せばよいです。

$ curl -fL https://get.k3s.io | sh -s - server