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

2024-06-07 04:44

本文主要是介绍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 

安装完成

这篇关于k8s学习--负载均衡器matelLB的详细解释与安装的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1038192

相关文章

Apache Ignite 与 Spring Boot 集成详细指南

《ApacheIgnite与SpringBoot集成详细指南》ApacheIgnite官方指南详解如何通过SpringBootStarter扩展实现自动配置,支持厚/轻客户端模式,简化Ign... 目录 一、背景:为什么需要这个集成? 二、两种集成方式(对应两种客户端模型) 三、方式一:自动配置 Thick

Python对接支付宝支付之使用AliPay实现的详细操作指南

《Python对接支付宝支付之使用AliPay实现的详细操作指南》支付宝没有提供PythonSDK,但是强大的github就有提供python-alipay-sdk,封装里很多复杂操作,使用这个我们就... 目录一、引言二、准备工作2.1 支付宝开放平台入驻与应用创建2.2 密钥生成与配置2.3 安装ali

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

SQL Server安装时候没有中文选项的解决方法

《SQLServer安装时候没有中文选项的解决方法》用户安装SQLServer时界面全英文,无中文选项,通过修改安装设置中的国家或地区为中文中国,重启安装程序后界面恢复中文,解决了问题,对SQLSe... 你是不是在安装SQL Server时候发现安装界面和别人不同,并且无论如何都没有中文选项?这个问题也

2025版mysql8.0.41 winx64 手动安装详细教程

《2025版mysql8.0.41winx64手动安装详细教程》本文指导Windows系统下MySQL安装配置,包含解压、设置环境变量、my.ini配置、初始化密码获取、服务安装与手动启动等步骤,... 目录一、下载安装包二、配置环境变量三、安装配置四、启动 mysql 服务,修改密码一、下载安装包安装地

Redis MCP 安装与配置指南

《RedisMCP安装与配置指南》本文将详细介绍如何安装和配置RedisMCP,包括快速启动、源码安装、Docker安装、以及相关的配置参数和环境变量设置,感兴趣的朋友一起看看吧... 目录一、Redis MCP 简介二、安www.chinasem.cn装 Redis MCP 服务2.1 快速启动(推荐)2.

在macOS上安装jenv管理JDK版本的详细步骤

《在macOS上安装jenv管理JDK版本的详细步骤》jEnv是一个命令行工具,正如它的官网所宣称的那样,它是来让你忘记怎么配置JAVA_HOME环境变量的神队友,:本文主要介绍在macOS上安装... 目录前言安装 jenv添加 JDK 版本到 jenv切换 JDK 版本总结前言China编程在开发 Java

Spring Boot Actuator应用监控与管理的详细步骤

《SpringBootActuator应用监控与管理的详细步骤》SpringBootActuator是SpringBoot的监控工具,提供健康检查、性能指标、日志管理等核心功能,支持自定义和扩展端... 目录一、 Spring Boot Actuator 概述二、 集成 Spring Boot Actuat

Linux下在线安装启动VNC教程

《Linux下在线安装启动VNC教程》本文指导在CentOS7上在线安装VNC,包含安装、配置密码、启动/停止、清理重启步骤及注意事项,强调需安装VNC桌面以避免黑屏,并解决端口冲突和目录权限问题... 目录描述安装VNC安装 VNC 桌面可能遇到的问题总结描js述linux中的VNC就类似于Window

如何在Java Spring实现异步执行(详细篇)

《如何在JavaSpring实现异步执行(详细篇)》Spring框架通过@Async、Executor等实现异步执行,提升系统性能与响应速度,支持自定义线程池管理并发,本文给大家介绍如何在Sprin... 目录前言1. 使用 @Async 实现异步执行1.1 启用异步执行支持1.2 创建异步方法1.3 调用