admin管理员组

文章数量:1641938

如果是本地安装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/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}'

本文标签: 均衡器负载K8sMetalLB