安装k8s的负载均衡器MetalLB

本文档详细介绍了如何在本地 Kubernetes 集群中安装 MetalLB,包括准备、安装步骤、配置 IPAddressPool 和 L2Advertisement,以及部署和验证 Web 服务的 Pod 和 Service,提供本地环境的 LoadBalancer 功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果是本地安装k8s集群,默认是没有负载均衡器的,需要自己手动安装。

下面就讲述如何安装k8s的负载均衡器Metallb。

准备工作

如果在 IPVS 模式下使用 kube-proxy,则从 Kubernetes v1.14.2 开始,您必须启用严格 ARP 模式。
请注意,如果使用 kube-router 作为服务代理,则不需要此选项,因为它默认启用严格 ARP。
可以通过编辑当前集群中的 kube-proxy 配置来实现此目的:

kubectl edit configmap -n kube-system kube-proxy
并设置:
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
mode: "ipvs"      // 注意,这里修改
ipvs:
  strictARP: true  // 注意,这里也修改

安装 MetalLB

MetalLB 是一个可以在本地 Kubernetes 集群中实现 LoadBalancer 功能的工具。以下是安装 MetalLB 的步骤以及使用 MetalLB 部署一个包含 Web 服务的 Pod 和 Service 的示例。

  1. 创建 metallb-system 命名空间

    kubectl create namespace metallb-system
    
  2. 安装 MetalLB
    MetalLB 可以通过以下命令进行安装,这里使用官方推荐的 manifest 文件:

       kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.14.5/config/manifests/metallb-native.yaml
    

2. 配置 IPAddressPool 和 L2Advertisement

如果你使用的是较新的 MetalLB 版本(特别是从 v0.10.0 版本开始),则需要配置 IPAddressPoolL2Advertisement 资源,而不是通过 ConfigMap 来配置地址池。MetalLB 的新版本采用了 CRD(Custom Resource Definitions)来配置。

在 MetalLB 的旧版本(v0.9.6 及之前),配置是通过 ConfigMap 来完成的。

这里如果搞错了,将会配置失败。EXTERNAL-IP一直会pending

1. 确认 MetalLB 版本

首先,确保你安装的是 MetalLB 的较新版本。例如,你可以通过以下命令检查 MetalLB 控制器的版本:

kubectl get deployment -n metallb-system controller -o=jsonpath='{.spec.template.spec.containers[0].image}'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

^_^ 纵歌

工作中的经验分享

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值