当前位置: 首页 > news >正文

k8s学习--负载均衡器matelLB的详细解释与安装

文章目录

    • MetalLB介绍
    • 什么是 MetalLB
    • MetalLB 的用途
    • MetalLB 的工作模式
      • Layer 2 模式
      • BGP 模式
    • MetalLB 的应用场景
  • 安装matelLB
    • 环境
    • 环境
      • 1. 修改kube-proxy代理模式
      • 2.metallb部署
      • 3. IP地址池准备
      • 4.开启二层通告


MetalLB介绍

什么是 MetalLB

MetalLB 是一个专为 Kubernetes 设计的负载均衡器,实现了对外部流量的负载均衡,特别适用于在裸机(bare metal)环境中运行的 Kubernetes 集群。通常,云提供商会提供内置的负载均衡服务,但在裸机环境中,缺少类似的服务。MetalLB 填补了这个空白,为裸机 Kubernetes 集群提供了一种简单且有效的负载均衡解决方案。

MetalLB 的用途

外部流量负载均衡: 使 Kubernetes 集群中的服务能够通过外部 IP 地址进行访问。

高可用性: 通过负载均衡多个节点和服务实例,提高服务的可用性和可靠性。

**易于集成:**与 Kubernetes 原生的服务类型(如 LoadBalancer)无缝集成,简化了配置和管理。

MetalLB 的工作模式

MetalLB 支持两种主要的运行模式:Layer 2 模式和 BGP 模式。

Layer 2 模式

Layer 2 模式不需要任何特殊的网络设备或配置,是最简单的部署方式。
分配 IP 地址: MetalLB 从预先定义的 IP 地址池中分配 IP 地址给 LoadBalancer 服务。
ARP 通告: 当有请求进入时,MetalLB 使用 ARP(Address Resolution Protocol)通告,将请求路由到正确的节点。
流量分发: MetalLB 根据 ARP 通告,将外部流量分发到相应的服务实例。

BGP 模式

BGP(Border Gateway Protocol)模式适用于有路由器或交换机等网络设备支持 BGP 的环境。
BGP 会话: MetalLB 与网络设备建立 BGP 会话,通告负载均衡 IP 地址。
路由配置: 通过 BGP,MetalLB 动态地将流量路由到 Kubernetes 集群中的节点。
高效路由: BGP 模式能够实现更加高效和灵活的流量路由,适用于复杂的网络环境。

MetalLB 的应用场景

裸机 Kubernetes 集群: 没有云提供商负载均衡器支持的环境,通过 MetalLB 实现外部流量的负载均衡。

私有云: 在私有云环境中,通过 MetalLB 提供类似公有云的负载均衡功能。

混合云部署: 在混合云环境中,结合使用云提供商的负载均衡器和 MetalLB,提供统一的流量管理。

安装matelLB

环境

环境

Ip主机名cpu内存硬盘
192.168.10.11master012cpu双核4G100G
192.168.10.12worker012cpu双核4G100G
192.168.10.13worker022cpu双核4G100G

版本centos7.9
已部署k8s-1.27

1. 修改kube-proxy代理模式

kubectl edit configmap kube-proxy -n kube-syste

更改两处
strictARP 后的flase改为true
node 后添加ipvs
没看见往下翻

在这里插入图片描述

重启

kubectl rollout restart daemonset kube-proxy -n kube-system	

2.metallb部署

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

服务器连接不了时,可在vpn连接后,浏览器中访问https://raw.githubusercontent.com/metallb/metallb/v0.14.5/config/manifests/metallb-native.yaml
看到内容后复制创建文件

也可以使用离线下载后的文件部署

kubectl apply -f metallb-native.yaml

查看

kubectl -n metallb-system get pod

等待一会,可通过查看描述信息跟踪pod的运行状态,长时间无法完成下载时,各节点重启docker

kubectl -n metallb-system describe pod controller-6b9fd67ff4-rzvg2

3. IP地址池准备

vim ippool.yaml

addresses下是范围

apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:name: ippoolnamespace: metallb-system
spec:addresses:- 192.168.10.240-192.168.10.250

yaml应用

kubectl apply -f ippool.yaml

若出现故障提示,等上面pod全部运行起来再部署
还不行,各节点重启docker

查看地址池信息

kubectl -n metallb-system describe ipaddresspools.metallb.io ippool

在这里插入图片描述

4.开启二层通告

vim L2.yaml
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:name: examplenamespace: metallb-system

应用yaml

kubectl apply -f L2.yaml 

安装完成

相关文章:

  • #07【面试问题整理】嵌入式软件工程师
  • c#快速获取超大文件夹文件名
  • LVS – NAT 模式集群构建
  • 重学java 64.IO流 字符流
  • Java SE LTS版本商用收费,有那些开源的替代方案?
  • PDF批量加水印 与 去除水印实践
  • [CAN] 创建解析CAN报文DBC文件教程
  • 大模型算法岗常见面试题100道(含答案)
  • 哲学家进餐问题
  • SSL/TLS和HTTPS
  • mysql的双机热备
  • Linux “ 软件管理 “
  • SHELL脚本学习(七) 脚本控制
  • 免费学习通刷课(免费高分)Pro版
  • American Social Welfware (1600-1940)
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • git 常用命令
  • Git初体验
  • Idea+maven+scala构建包并在spark on yarn 运行
  • Java应用性能调优
  • Objective-C 中关联引用的概念
  • underscore源码剖析之整体架构
  • vue.js框架原理浅析
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • 安卓应用性能调试和优化经验分享
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 给新手的新浪微博 SDK 集成教程【一】
  • 基于web的全景—— Pannellum小试
  • 技术胖1-4季视频复习— (看视频笔记)
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 山寨一个 Promise
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 与 ConTeXt MkIV 官方文档的接驳
  • 智能网联汽车信息安全
  • MyCAT水平分库
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第1节 (全局数据、栈和堆)
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (附源码)node.js知识分享网站 毕业设计 202038
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (一)80c52学习之旅-起始篇
  • (转)编辑寄语:因为爱心,所以美丽
  • (转)甲方乙方——赵民谈找工作
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • ****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算
  • . NET自动找可写目录
  • .【机器学习】隐马尔可夫模型(Hidden Markov Model,HMM)
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .NET 8.0 中有哪些新的变化?
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .NET国产化改造探索(一)、VMware安装银河麒麟
  • .NET开发人员必知的八个网站