安装k8s的负载均衡器MetalLB

安装k8s的负载均衡器MetalLB

码农世界 2024-05-18 前端 64 次浏览 0个评论

如果是本地安装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 版本开始),则需要配置 IPAddressPool 和 L2Advertisement 资源,而不是通过 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}'

转载请注明来自码农世界,本文标题:《安装k8s的负载均衡器MetalLB》

百度分享代码,如果开启HTTPS请参考李洋个人博客
每一天,每一秒,你所做的决定都会改变你的人生!

发表评论

快捷回复:

评论列表 (暂无评论,64人围观)参与讨论

还没有评论,来说两句吧...

Top