Kubernetes负载均衡器之MetalLB

Kubernetes负载均衡器之MetalLB

作者:linux运维菜 2022-07-14 08:53:48

云计算

云原生 在非云环境中,可以使用MetalLB 是提供kubernetes中LoadBalancer的服务的。MetalLB无法凭空创建IP地址,因此您必须为其提供可以使用的IP地址池。

简介

在kubernets中,可以使用Loadbalancer的方式对外提供服务,在一般云环境中都有对应的负载均衡的产品。

如果在非云环境中,可以使用MetalLB 是提供kubernetes中LoadBalancer的服务的。

MetalLB无法凭空创建IP地址,因此您必须为其提供可以使用的IP地址池。

MetalLB 为服务分配外部 IP 地址后,需要使群集之外的网络知道该 IP“位于”群集中。

协议

二层模式 (ARP/NDP):从局域网的角度来看,播报机只是有多个IP地址。

缺点:

  • 存在单节点瓶颈:IP会被分配到单个节点上,所以节点的网络瓶颈会成为负载均衡其的瓶颈。
  • 故障故障转移慢: IP 关联的 MAC 地址已更改,客户端ARP表有可能更新不及时,导致故障转移慢。

BGP模式:在 BGP 模式下,群集中的所有计算机都建立边界网关协议与您控制的附近路由器的对等会话,并告诉这些路由器如何将流量转发到服务 IP。使用 BGP 可以跨越多个节点实现真正的负载平衡,并通过 BGP 的策略机制实现细粒度的流量控制。

最大的缺点是基于 BGP 的负载平衡无法对地址后端集中的更改做出优雅反应。这意味着,当群集节点出现故障时,您应该期望与服务的所有活动连接都已断开。

网络插件

MetalLB完全支持的网络插件Canal、Cilium、Flannel、Kube-ovn等。

如果kube-proxy运行在IPVS模式先,需要设置strictARP: true。

kubectleditconfigmap-nkube-systemkube-proxy
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
mode: "ipvs"
ipvs:
strictARP: true

安装

kubectlapply-fhttps://raw.githubusercontent.com/metallb/metallb/v0.13.3/config/manifests/metallb-native.yaml

或者通过helm安装。

helmrepoaddmetallbhttps://metallb.github.io/metallb
helminstallmetallbmetallb/metallb

二层协议配置

配置分配的IP池。

apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
name: first-pool
namespace: metallb-system
spec:
addresses:
-192.168.128./24
-192.168.122.200-192.168.122.240
-fca0:fe53:0ccd:e799::/124

如果在L2Advertisement无指定IP池,默认就与所有的IP池关联。

apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
name: example
namespace: metallb-system

也可以手动通过指定IP池。

apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
name: example
namespace: metallb-system
spec:
ipAddressPools:
- first-pool

BGP 协议配置

需要配置 MetalLB 如何与一个或多个外部 BGP 路由器建立会话。

对于具有一个 BGP 路由器和一个 IP 地址范围的基本配置:

  • MetalLB 连接到的路由器 IP 地址。
  • 路由器的 AS 编号。
  • MetalLB应使用的AS编号。
  • 以 CIDR 前缀表示的 IP 地址范围。
apiVersion: metallb.io/v1beta2
kind: BGPPeer
metadata:
name: sample
namespace: metallb-system
spec:
myASN: 64500
peerASN: 64501
peerAddress: 10.0.0.1
---
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
name: first-pool
namespace: metallb-system
spec:
addresses:
-192.168.1.240-192.168.1.250
---
apiVersion: metallb.io/v1beta1
kind: BGPAdvertisement
metadata:
name: example
namespace: metallb-system
spec:
ipAddressPools:
-first-pool

使用

在配置service的时候,修改type: LoadBalancer,保存之后就可以查看分配的IP。

kubectlgetsvc-A

总结

云环境还是直接使用LB产品稳定、省事。如果是测试环境,可以使用MetalLB节约成本。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/278644.html<

(0)
运维的头像运维
上一篇2025-05-11 16:40
下一篇 2025-05-11 16:41

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注