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

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
网络型负载均衡 NLB,每月750个小时 15LCU
简介: k8s学习--负载均衡器matelLB的详细解释与安装

@TOC


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.11 master01 2cpu双核 4G 100G
192.168.10.12 worker01 2cpu双核 4G 100G
192.168.10.13 worker02 2cpu双核 4G 100G

版本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: ippool
  namespace: 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: example
  namespace: metallb-system

应用yaml

kubectl apply -f L2.yaml

安装完成

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
1月前
|
存储 Kubernetes 持续交付
k8s学习
【10月更文挑战第1天】
80 4
|
1月前
|
负载均衡 应用服务中间件 Linux
nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全
这篇博客文章详细介绍了Nginx的下载、安装、配置以及使用,包括正向代理、反向代理、负载均衡、动静分离等高级功能,并通过具体实例讲解了如何进行配置。
143 4
nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全
|
6天前
|
Kubernetes Ubuntu Linux
我应该如何安装Kubernetes
我应该如何安装Kubernetes
|
29天前
|
Kubernetes Ubuntu Docker
从0开始搞K8S:使用Ubuntu进行安装(环境安装)
通过上述步骤,你已经在Ubuntu上成功搭建了一个基本的Kubernetes单节点集群。这只是开始,Kubernetes的世界广阔且深邃,接下来你可以尝试部署应用、了解Kubernetes的高级概念如Services、Deployments、Ingress等,以及探索如何利用Helm等工具进行应用管理,逐步提升你的Kubernetes技能树。记住,实践是最好的老师,不断实验与学习,你将逐渐掌握这一强大的容器编排技术。
110 1
|
1月前
|
缓存 负载均衡 算法
nginx学习:配置文件详解,负载均衡三种算法学习,上接nginx实操篇
Nginx 是一款高性能的 HTTP 和反向代理服务器,也是一个通用的 TCP/UDP 代理服务器,以及一个邮件代理服务器和通用的 HTTP 缓存服务器。
65 0
nginx学习:配置文件详解,负载均衡三种算法学习,上接nginx实操篇
|
1月前
|
存储 Kubernetes 调度
|
1月前
|
Kubernetes Linux 开发工具
centos7通过kubeadm安装k8s 1.27.1版本
centos7通过kubeadm安装k8s 1.27.1版本
|
1月前
|
Kubernetes 负载均衡 网络协议
在K8S中,负载均衡器有何作用?
在K8S中,负载均衡器有何作用?
|
1月前
|
负载均衡 Kubernetes 区块链
随机密码生成器+阿里k8s负载均衡型服务加证书方法+移动终端设计+ico生成器等
随机密码生成器+阿里k8s负载均衡型服务加证书方法+移动终端设计+ico生成器等
50 1
|
1月前
|
存储 Kubernetes 负载均衡
基于Ubuntu-22.04安装K8s-v1.28.2实验(四)使用域名访问网站应用
基于Ubuntu-22.04安装K8s-v1.28.2实验(四)使用域名访问网站应用
27 1