首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏DevOps实战派

    Kubernetes的负载均衡方案:MetalLB

    部署要求 MetalLB部署需要以下环境才能运行: 运行Kubernetes 1.13.0或更高版本的群集,尚不具有网络负载平衡功能; 一些用于MetalLB分配的IPv4地址; 如果使用BGP模式,需要准备一台或多台支持 MetalLB支持两种模式,一种是Layer2模式,一种是BGP模式。 安装MetalLB相关组件 运行下列命令安装相关组件,默认会将MetalLB部署到metallb-system 的名称空间。 $ kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.13.4/config/manifests/metallb-native.yaml : metallb-system 五.

    7.9K32编辑于 2022-10-31
  • 来自专栏小陈运维

    Kubernetes核心-Ingress-metallb

    部署metallb MetalLB 是Kubernetes 的一个裸机环境下的负载均衡器,它为LoadBalancer 类型的Service 提供IP 地址分配和对外流量广播,从而使裸机Kubernetes /metallb/metallb/v0.15.2/config/manifests/metallb-native.yaml # 修改镜像地址 # 自行找代理 sed -i "s#quay.io#quay.chenby.cn #g" metallb-native.yaml cat metallb-native.yaml | grep image image: quay.chenby.cn/metallb/controller :v0.14.5 image: quay.chenby.cn/metallb/speaker:v0.14.5 # 执行部署 kubectl apply -f metallb-native.yaml cat > metallb-config-L2Advertisement.yaml << EOF apiVersion: metallb.io/v1beta1 kind: L2Advertisement

    23410编辑于 2025-09-02
  • 来自专栏小陈运维

    Kubernetes核心-Ingress-metallb

    /metallb/metallb/v0.15.2/config/manifests/metallb-native.yaml# 修改镜像地址# 自行找代理sed -i "s#quay.io#quay.chenby.cn #g" metallb-native.yaml cat metallb-native.yaml | grep image image: quay.chenby.cn/metallb/controller :v0.14.5 image: quay.chenby.cn/metallb/speaker:v0.14.5 # 执行部署kubectl apply -f metallb-native.yaml cat > metallb-config-ipaddresspool.yaml << EOFapiVersion: metallb.io/v1beta1kind: IPAddressPoolmetadata -f metallb-config-ipaddresspool.yamlkubectl apply -f metallb-config-L2Advertisement.yamlIngress安装执行部署

    24810编辑于 2025-08-31
  • 来自专栏小陈运维

    Kuberntes部署MetalLB负载均衡器

    Kuberntes部署MetalLB负载均衡器 MetalLB简介 MetalLB是一个为基础 Kubernetes集群提供负载均衡实现的工具,使用标准路由协议。 # 下载应用包 wget https://mirrors.chenby.cn/https://github.com/metallb/metallb/archive/refs/tags/v0.14.5 #g" metallb-native.yaml cat metallb-native.yaml | grep image image: quay.chenby.cn/metallb/controller :v0.14.5 image: quay.chenby.cn/metallb/speaker:v0.14.5 # 执行部署 kubectl apply -f metallb-native.yaml cat > metallb-config-L2Advertisement.yaml << EOF apiVersion: metallb.io/v1beta1 kind: L2Advertisement

    1.2K10编辑于 2024-07-01
  • 来自专栏运维开发故事

    Kubernetes开源LoadBalancer—Metallb(BGP)

    在寻找资料的时候我们找到了两种解决方案,一种是Kubesphere的OpenELB,一种是MetalLB。但是OpenELB的文档实在是太少了,而且还是很久之前的文档,所以我们选择了MetalLBMetalLB有两个共同提供此服务的特性:地址分配和外部通知。 kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.12.1/manifests/namespace.yaml kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.12.1/manifests/metallb.yaml # cat > metallb-eip.yaml <<EOF apiVersion: v1 kind: ConfigMap metadata: namespace: metallb-system

    1.7K21编辑于 2022-09-15
  • 来自专栏小陈运维

    Kuberntes部署MetalLB负载均衡器

    Kuberntes部署MetalLB负载均衡器MetalLB简介MetalLB是一个为基础 Kubernetes集群提供负载均衡实现的工具,使用标准路由协议。 # 下载应用包wget https://mirrors.chenby.cn/https://github.com/metallb/metallb/archive/refs/tags/v0.14.5.tar.gztar cat metallb-native.yaml | grep image image: quay.chenby.cn/metallb/controller:v0.14.5 cat > metallb-config-ipaddresspool.yaml << EOFapiVersion: metallb.io/v1beta1kind: IPAddressPoolmetadata -f metallb-config-ipaddresspool.yamlkubectl apply -f metallb-config-L2Advertisement.yaml测试# 测试cat >

    88510编辑于 2024-06-22
  • 来自专栏Loki

    BGP 模式下 Calico 与 MetalLB 如何结合

    关于 MetalLB 在讲 MetalLB 之前,先回顾下应用部署在 Kubernetes 中,它的下游服务是如何访问的吧。 MetalLB 就是在裸金属服务器下为 Kubernetes 集群诞生的一个负载均衡器项目。 事实上当然不止 MetalLB,开源界里面还有其他诸如PureLB、OpenELB等负载均衡产品。 下载并安装 MetalLB kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.12.1/manifests/namespace.yaml kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.12.1/manifests/metallb.yaml 注意 ,由于我们不需要 MetalLB 的 Speaker 服务,所以当 MetalLB Controller 运行成功后,可以将 speaker 服务删除。

    2.7K20编辑于 2022-06-06
  • 来自专栏运维之美

    Kubernetes 私有集群负载均衡器终极解决方案 MetalLB

    使用 MetalLB 时,MetalLB 会自己为用户的 LoadBalancer 类型 Service 分配 IP 地址,当然该 IP 地址不是凭空产生的,需要用户在配置中提供一个 IP 地址池,Metallb 具体内容可参考:https://github.com/google/metallb/issues/153 安装 MetalLB 安装 MetalLB 一共有两种方法:使用 Kubernetes YAML /v0.8.1/manifests/metallb.y 部署完成后,将在 metallb-system 命名空间下将 MetalLB 部署到集群。 配置 MetalLB MetalLB 安装完成后,我们还需要根据具体的地址和通告方式配置名为 metallb-system/config 的 ConfigMap。 通过 Helm 安装时,MetalLB 读取的 ConfigMap 名为 metallb-config 。

    8.3K31发布于 2020-05-24
  • 来自专栏伪架构师

    Metallb - 贫苦 K8S 用户的负载均衡支持

    接下来介绍的 Metallb,就给私有 Kubernetes 用户带来了一个方便、可用(而且不太成熟)的软件解决方案。 该项目发布于 2017 年底,当前处于 Beta 阶段。 ,Metallb 将会在其中选取地址分配给服务。 地址广播 根据不同配置,Metallb 会以二层(ARP/NDP)或者 BGP 的方式进行地址的广播。 /manifests/metallb.yaml 很简单,Metallb 就会开始安装,会生成自己的命名空间以及 RBAC 配置。 使用 kubectl apply 命令应用之后,使用 kubectl logs -f [metallb-controller-pod] 会看到配置更新过程。

    4.8K30发布于 2019-07-23
  • 来自专栏有点技术

    metalb - 让本地集群使用LoadBalancer成为可能

    /v0.8.3/manifests/metallb.yaml 配置 二层 二层只需要配置IP地址段即可 cat >> metallb < EOFapiVersion: v1kind: ConfigMapmetadata : namespace: metallb-system name: configdata: config: | address-pools: - name: default 地址, 路由器的AS号, MetalLB应该使用的AS号, 以CIDR前缀表示的IP地址范围。 默认情况下,MetalLB将每个IP通告为/32, 但您的IP提供商拒绝路由/24以外的路由。因此,您需要以某种方式以/24向您的IP提供商进行广播发布,但仍然可以在内部进行单个IP路由。 IP 总结 metallb 赋予了我们使用本地网络直接访问K8S内部服务的能力而不需要依赖于nodeport或者host port,但是当前为beta,不推荐生产使用.

    2.1K20发布于 2020-07-14
  • 来自专栏山河已无恙

    关于 Kubernetes中Service使用Metallb实现LoadBalancer的一个Demo

    创建 Metallb可以通过k8s原生的方式提供LB类型的Service支持 使用:metallb https://metallb.universe.tf/ 资源文件https://github.com /metallb/metallb/blob/main/manifests/metallb.yaml 创建命名空间 ┌──[root@vms81.liruilongs.github.io]-[~/ansible /k8s-svc-create] └─$kubectl create ns metallb-system namespace/metallb-system created ┌──[root@vms81 : app: metallb name: speaker namespace: metallb-system --- apiVersion: rbac.authorization.k8s.io /v1 kind: ClusterRole metadata: labels: app: metallb name: metallb-system:controller rules: -

    82620编辑于 2023-03-02
  • 来自专栏云原生记录

    裸机 Kubernetes 负载均衡全景:从 MetalLB、Service 到 Ingress,再到云厂商实现原理

    Kubernetes集群使用MetalLB作为LoadBalancer实现,填补了裸机Kubernetes集群的负载均衡能力空白。然而,MetalLB并非万能钥匙。 2.3MetalLB:裸机的LoadBalancer实现者MetalLB的唯一使命是:让Service的LoadBalancer类型在裸机环境可用。 好处:节点故障时,MetalLB自动迁移IP,防火墙规则无需修改!5.2多网卡虚拟机:指定绑定接口MetalLB默认绑定到默认路由对应的接口。 因此,在云上无需MetalLB;而在裸机环境,MetalLB是实现LoadBalancer语义的事实标准。 )+Ingress(无需MetalLB)黄金法则:Service是基石;Ingress是HTTP路由规则;MetalLB是裸机LoadBalancer的实现。

    17810编辑于 2025-12-22
  • 来自专栏东风微鸣技术博客

    「译文」比较开源 k8s LoadBalancer-MetalLB vs PureLB vs OpenELB

    MetalLB有一些BGP地址聚合功能,但这并不改变/32的广告,它只是告诉上游路由器进行聚合,对等路由器仍然会有/32路由。 MetalLB有自己的BGP实现。这很重要,原因有三。 2.BGP功能没有办法与Linux路由表整合,只能用于宣传MetalLB创建的前缀。3.BGP功能受限于MetalLB的支持水平,其他软件路由器中的功能需要专门为MetalLB开发。 改变池子标志着配置的陈旧,MetalLB继续使用同一个地址池,新的服务从旧的池子中分配。知道配置是否过时的唯一方法是检查MetalLB POD日志。 MetalLB的文档很充分,但很稀少。要了解它的运作方式,有必要阅读源代码。 IPv6 在检查源代码时,你会发现MetalLB的一些组件支持IPv6,但作为一个系统,MetalLB并不支持IPv6。 MetalLB 总结. MetalLB不使用原生的Linux网络,因此很难使用标准的Linux工具进行故障排除。它有自己独特的BGP实现,缺乏用于管理大规模BGP基础设施的功能。

    3.4K20编辑于 2022-04-22
  • 来自专栏云原生运维社区

    Traefik 企业实战:部署生产级Traefik篇

    负载均衡器部署 为了实现在本地集群中能够使用服务类型为LoadBalancer的服务,我们将部署metallb来实现,至于metallb的实现原理,本章不会详细讲解,有兴趣的童鞋可以自行研究 提前安装metallb 服务,使traefik svc可以使用LoadBalancer的服务 Helm安装 metallb 参考官网:https://metallb.universe.tf/installation/ [root @localhost ~]# kubectl create ns metallb-system [root@localhost ~]# helm repo add metallb https://metallb.github.io /metallb "metallb" has been added to your repositories [root@localhost ~]# helm install -n metallb-system metallb metallb/metallb NAME: metallb LAST DEPLOYED: Mon Aug 21 16:51:37 2023 NAMESPACE: metallb-system

    2.4K40编辑于 2023-09-11
  • 来自专栏容器云实践

    k8s loadbalancer与ingress实践

    MetalLB[1],一个CNCF沙箱项目,使用标准路由协议(ARP/BGP),实现裸机K8s集群的负载均衡器。 安装方式可参考官方文档:installation[2] L2(子网)模式的结构,图源[3] 安装后我们获得如下两个组件: •metallb-system/controller deployment。 •metallb-system/speakerdaemonset。集群中每个节点启动一个协议服务守护进程。 接着添加一个configmap配置metallb IP池。 apiVersion: v1 kind: ConfigMap metadata: namespace: metallb-system name: config data: config: | References [1] MetalLB: https://metallb.universe.tf/ [2] installation: https://metallb.universe.tf/installation

    2.5K20编辑于 2022-01-10
  • 来自专栏Se7en的架构笔记

    Kubernetes 中数据包的生命周期 -- 第 4 部分

    3.4 MetalLB — 带有 LoadBalancer 服务的 Nginx(适用于含有少量公网地址的私有集群) MetalLB 是裸机 Kubernetes 集群中负载均衡器的实现。 在裸机 Kubernetes 集群中,MetalLB 负责分配 IP 地址。一旦 MetalLB 为服务分配了外部 IP 地址,它需要让集群外部的网络知道这个 IP “存在“于集群中。 MetalLB 使用标准的路由协议实现这一点:ARP,NDP 或者 BGP。 MetalLB 运行时有两种工作负载: Controler:以 Deployment 方式部署,是集群范围的 MetalLB 控制器,用于监听 Service 的变更,分配/回收 IP 地址。

    1.1K10编辑于 2022-06-24
  • 来自专栏云云众生s

    十分钟实现Kubernetes多集群

    apiVersion: metallb.io/v1beta1 kind: IPAddressPool metadata: name: default-pool namespace: metallb-system /metallb/v0.13.7/config/manifests/metallb-native.yaml sleep 240 kubectl apply -f region-athens/ipaddresspool.yaml name: default namespace: metallb-system spec: ipAddressPools: - default-pool 然后部署 MetalLB: kubectl config use-context kind-region-hurup kubectl apply -f https://raw.githubusercontent.com/metallb/metallb a Network Load Balancer on Kubernetes with MetalLB

    40110编辑于 2024-03-27
  • 来自专栏七禾页话

    云原生|什么是K8s里的CRD(Custom Resource Definitions)?

    作为一种负载均衡器,其也有很多自己的Customer Resource,从官网拿到的MetalLB的yaml里有很多的CRD定义,当我们创建了MetaLLB的微服务后,可以看到MetalLB的定义资源也同步创建好 ,并且可以在api-resources列表里看到: ####左右滑动 kubectl get crd | grep -i metallb kubectl api-resources | grep -i metallb kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.13.12/config/manifests/ metallb-native.yaml kubectl get crd | grep -i metallb kubectl api-resources | grep -i metallb @七禾页话 API资源创建MetalLB的IP Pool实例: ####左右滑动 cat <<EOF | kubectl create -f - apiVersion: metallb.io/v1beta1 kind

    7.7K20编辑于 2024-01-22
  • 来自专栏山河已无恙

    openEuler 24.03(LTS)部署 K8s(v1.31.1) 高可用集群(Kubespray Ansible 方式)

    : true metallb_speaker_enabled: "{{ metallb_enabled }}" metallb_namespace: "metallb-system" metallb_version : v0.13.9 metallb_protocol: "layer2" metallb_port: "7472" metallb_memberlist_port: "7946" argocd_enabled 软 LB metallb 安装,用 自带的角色安装 metallb 一直有报错,解决不了,这里手工安装 ┌──[root@liruilongs.github.io]-[~/kubespray/inventory /liruilong-cluster] └─$kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.13.9/config /manifests/metallb-native.yaml 分配 IP 池 ┌──[root@liruilongs.github.io]-[~/kubespray] └─$vim pool.yaml

    1.7K20编辑于 2024-10-08
  • 来自专栏一个默默无闻的工程师的日常

    istio-ingressgateway 学习

    k3s 安装的时候禁用了默认的 servicelb 服务,需要手动安装其他 LB 服务,这里安装MetalLB。 使用一下命令安装 MetalLB (native模式) 1 kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.13.10 /config/manifests/metallb-native.yaml 配置 MetalLB 地址池: 1 2 3 4 5 6 7 8 9 10 11 12 13 cat <<EOF > IPAddressPool.yaml apiVersion: metallb.io/v1beta1 kind: IPAddressPool metadata: name: first-pool namespace: metallb-system spec: addresses: # 可分配的 IP 地址,可以指定多个,包括 ipv4、ipv6 - 192.168.10.0/24 EOF

    1.5K20编辑于 2023-10-18
领券