【メタルエルビー】
MetalLB とは?
最終更新:
💡 自前KubernetesのServiceに、外部IPとその到達先を用意する
クラウドのロードバランサ連携がないKubernetes環境で、LoadBalancerタイプのServiceに外部IPを割り当て、ARP/NDPやBGPでその到達先を知らせるOSS。通信を受けたノードからPodへの振り分けは、KubernetesのServiceを実現する仕組みが担う。
📌 このページのポイント
ペンギン先生、MetalLBって何なの?
KubernetesにはLoadBalancerタイプのServiceがあるよ。クラウド側の連携機能がない環境では、外部IPを割り当てる仕組みが別に必要になる。MetalLBは、用意したIPを割り当て、そのIPへ通信が届くようネットワークへ知らせるOSSなんだ。
MetalLB自身が全部の通信を中継するの?
どうやってIPアドレスを割り当てるの?
管理者が使えるIPの範囲をプールとして設定しておくよ。MetalLBはその中からServiceにIPを割り当てる。IPを無から作るわけではないし、LAN用のプライベートIPを使う場合もある。外部IPという名前だけでインターネットから接続できるとは限らないよ。
L2モードとBGPモードはどう使い分けるの?
障害が起きても接続は切れない?
自宅のクラスタでも使えるんだね!
使える環境はあるよ。ただし、プールと広告の設定に加え、ネットワークからそのIPへ到達できる必要がある。Web向けの入口にIngressを組み合わせることもあるけれど、MetalLBを入れるだけでインターネット公開の設定まで完了するわけではないんだ。
まとめ:ざっくりこれだけ覚えればOK!
「MetalLB」って出てきたら「自前KubernetesのServiceに外部IPを割り当て、その到達先を知らせるOSS」と思えばだいたいOK!
📖 おまけ:英語の意味
「MetalLB」 = Metal(ベアメタル)+LB(ロードバランサ)
💬 ベアメタルなど、クラウドのロードバランサ連携がないKubernetes環境を想起させる名前だよ。物理サーバーだけに限らず、そのようなクラスタで利用する。