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

张春  金牌会员 | 2024-6-11 21:27:44 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 683|帖子 683|积分 2049


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双核4G100G192.168.10.12worker012cpu双核4G100G192.168.10.13worker022cpu双核4G100G 版本centos7.9
已部署k8s-1.27
1. 修改kube-proxy代理模式

  1. kubectl edit configmap kube-proxy -n kube-syste
复制代码
更改两处
strictARP 后的flase改为true
node 后添加ipvs
没瞥见往下翻

重启
  1. kubectl rollout restart daemonset kube-proxy -n kube-system       
复制代码
2.metallb部署

  1. 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
看到内容后复制创建文件
也可以利用离线下载后的文件部署
  1. kubectl apply -f metallb-native.yaml
复制代码
查看
  1. kubectl -n metallb-system get pod
复制代码
等待一会,可通过查看形貌信息跟踪pod的运行状态,长时间无法完成下载时,各节点重启docker
  1. kubectl -n metallb-system describe pod controller-6b9fd67ff4-rzvg2
复制代码
3. IP地址池准备

  1. vim ippool.yaml
复制代码
addresses下是范围
  1. apiVersion: metallb.io/v1beta1
  2. kind: IPAddressPool
  3. metadata:
  4.   name: ippool
  5.   namespace: metallb-system
  6. spec:
  7.   addresses:
  8.   - 192.168.10.240-192.168.10.250
复制代码
yaml应用
  1. kubectl apply -f ippool.yaml
复制代码
若出现故障提示,等上面pod全部运行起来再部署
还不可,各节点重启docker
查看地址池信息
  1. kubectl -n metallb-system describe ipaddresspools.metallb.io ippool
复制代码

4.开启二层通告

  1. vim L2.yaml
复制代码
  1. apiVersion: metallb.io/v1beta1
  2. kind: L2Advertisement
  3. metadata:
  4.   name: example
  5.   namespace: metallb-system
复制代码
应用yaml
  1. kubectl apply -f L2.yaml
复制代码
安装完成

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

张春

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表