documentation.suse.com / SUSE Edgeドキュメント / コンポーネント / MetalLB

19 MetalLB

MetalLBの公式ドキュメントを参照してください。

MetalLBは、標準のルーティングプロトコルを使用する、ベアメタルKubernetesクラスタ用のロードバランサの実装です。

ベアメタル環境では、ネットワークロードバランサの設定がクラウドセットアップよりも著しく複雑になります。クラウド設定でのわかりやすいAPIコールとは異なり、ベアメタルでは、高可用性(HA)を管理したり、シングルノードのロードバランサに特有の潜在的な単一障害点(SPOF)に対処したりするために、専用のネットワークアプライアンス、またはロードバランサと仮想IP (VIP)設定の組み合わせが必要になります。このような設定は自動化しにくく、コンポーネントが動的にスケールアップ/ダウンするKubernetesのデプロイメントでは課題となります。

MetalLBでは、こうした課題に対処するために、Kubernetesモデルを利用してLoadBalancerタイプのサービスを作成し、ベアメタルセットアップであってもクラウド環境であるかのように動作させます。

2つの異なるアプローチがあります。L2モード(ARPトリックを使用する)アプローチか、BGPを使用するアプローチです。主にL2では特別なネットワーク機器は必要ありませんが、一般的にはBGPのほうが優れています。これはユースケースによって異なります。

19.1 SUSE EdgeでのMetalLBの用途

SUSE Edgeでは、主に次の2つの方法でMetalLBを使用します。

  • ロードバランサソリューションとして: MetalLBは、ベアメタルマシン用のロードバランサソリューションとして機能します。

  • HA K3s/RKE2セットアップの場合: MetalLBでは、仮想IPアドレスを使用してKubernetes APIを負荷分散できます。

注記
注記

APIを公開できるようにするため、Endpoint Copier Operator (第20章 「Endpoint Copier Operator)を使用して、 kubernetesサービスからkubernetes-vip LoadBalancerサービスへのK8s APIエンドポイントの同期を維持します。

19.2 ベストプラクティス

L2モードでのMetalLBのインストールについては、第25章 「K3s上のMetalLB (レイヤ2モードを使用)で説明されています。

kube-api-serverの前面にインストールして高可用性トポロジを実現する方法のガイドについては、第26章 「Kubernetes APIサーバの前面のMetalLBを参照してください。

19.3 既知の問題

  • K3sには、Klipperというロードバランサソリューションが付属しています。MetalLBを使用するには、Klipperを無効にする必要があります。このためには、K3sのドキュメントで説明されているように、--disable servicelbオプションを指定してK3sサーバを起動します。

Documentation survey