k8s的网络优化(metallb)_metallb二层网络

一、metallb部署

参考网址:官方网站

为什么使用metallb?

Kubernetes不提供网络负载均衡器的实现(LoadBalancer类型的服务)用于裸机集群。Kubernetes附带的Network LB的实现都是调用各种IaaS平台(GCP,AWS,Azure等)的粘合代码。如果您未在受支持的IaaS平台(GCP,AWS,Azure等)上运行,则LoadBalancers在创建时将无限期保持“待处理”状态。
裸机集群运营商只剩下两个较小的工具,即“ NodePort”和“ externalIPs”服务,可将用户流量引入其集群。这两个选项在生产用途上都有很大的缺点,这使裸金属集群成为Kubernetes生态系统中的二等公民。
MetalLB旨在通过提供与标准网络设备集成的Network LB实现来解决这种不平衡问题,从而使裸机群集上的外部服务也尽可能“正常运行”。

部署准备

如果您在IPVS模式下使用kube-proxy,则从Kubernetes v1.14.2开始,您必须启用严格的ARP模式。
请注意,如果您将kube-router用作服务代理,则不需要此设置,因为默认情况下它启用了严格的arp。
您可以通过在当前集群中编辑kube-proxy配置来实现:

[root@server2 ~]# kubectl edit configmap -n kube-system kube-proxy

并修改如下图内容
在这里插入图片描述
更新kube-proxy pod

[root@server2 ~]# kubectl get pod -n kube-system |grep kube-proxy | awk '{system("kubectl delete pod "$1" -n kube-system")}'

开始部署

[root@server2 ~]# mkdir metallb/
[root@server2 ~]# cd metallb/
[root@server2 metallb]# wget https://raw.githubusercontent.com/metallb/metallb/v0.9.5/manifests/namespace.yaml
[root@server2 metallb]# wget https://raw.githubusercontent.com/metallb/metallb/v0.9.5/manifests/metallb.yaml
[root@server2 metallb]# kubectl apply -f namespace.yaml
[root@server2 metallb]# vim metallb.yaml #查看里面需要的镜像 

在这里插入图片描述
在这里插入图片描述

我们需要提前将镜像下载好,平且上传至私有仓库

[root@server1 harbor]# docker pull metallb/controller:v0.9.5
[root@server1 harbor]# docker pull metallb/speaker:v0.9.5
[root@server1 harbor]
  • 15
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值