MetalLB Load Balancer

这篇具有很好参考价值的文章主要介绍了MetalLB Load Balancer。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

MetalLB hooks into your Kubernetes cluster, and provides a network load-balancer implementation. In short, it allows you to create Kubernetes services of type LoadBalancer in clusters that don’t run on a cloud provider, and thus cannot simply hook into paid products to provide load balancers.

Installation

There are multiple ways to install MetalLB, for example

Through manifest

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

or Helm

helm repo add metallb https://metallb.github.io/metallb
helm install metallb metallb/metallb

The related service, deployment, and pods are in the newly created namespace 'metallb-system'

 'IPAddressPool' defines the IP address range that will be allocated to 'LoadBalancer' type service. The pool of IPs must be dedicated to MetalLB's use. You can't reuse for example the Kubernetes node IPs or IPs controlled by other services.

MetalLB supports two types of traffic policies, Layer2 and BGP. In summary, Layer 2 focuses on local network communication, while BGP handles routing between different networks and plays a critical role in global Internet connectivity. 

apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
  name: first-pool
  namespace: metallb-system
spec:
  addresses:
  - 192.168.9.10-192.168.9.20
---
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
  name: example
  namespace: metallb-system
spec:
  ipAddressPools:
  - first-pool

 Example


apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  containers:
    - name: nginx
      image: nginx:1.18.0
---
apiVersion: v1
kind: Service
metadata:
  name: nginx
spec:
  type: LoadBalancer
  ports:
    - port: 80
      targetPort: 80
  selector:
    app: nginx

Service 'nginx' will be allocated with an external-ip in 192.168.9.10-192.168.9.20 defined in IPAddressPool first-pool above, check the assigned external-ip with the command below

kubectl get service/nginx

MetalLB supports metallb.universe.tf/loadBalancerIPs annotation to set up service with a specific address.

apiVersion: v1
kind: Service
metadata:
  name: nginx
  annotations:
    metallb.universe.tf/loadBalancerIPs: 192.168.9.35
spec:
  type: LoadBalancer
  ports:
    - port: 80
      targetPort: 80
  selector:
    app: nginx

MetalLB also supports requesting a specific address pool, when you have multiple pools, for example, one for production public IPs, and one for development private IPs.

apiVersion: v1
kind: Service
metadata:
  name: nginx
  annotations:
    metallb.universe.tf/address-pool: second-pool
spec:
  type: LoadBalancer
  ports:
    - port: 80
      targetPort: 80
  selector:
    app: nginx

 文章来源地址https://www.toymoban.com/news/detail-760523.html

到了这里,关于MetalLB Load Balancer的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Load balancer does not have available server for client问题

    Load balancer does not have available server for client问题,是因为消费端没有调用成功服务端。下面四步是必备的,可以检查一番。 1.写nacos发现的启动类注解。 2.在两端yml文件中配置nacos地址。 3.写openfeign的接口。 4.开启服务端的endpoint。

    2024年02月11日
    浏览(24)
  • MetalLB:本地Kubernetes集群的LoadBalancer负载均衡利器

    在本地集群进行测试时,我们常常面临一个棘手的问题:Service Type不支持LoadBalancer,而我们只能选择使用NodePort作为替代。这种情况下,我们通常会配置Service为NodePort,并使用externalIPs将流量导入Kubernetes环境。然而,这些解决方案都存在明显的缺陷,使得在私有环境部署Kube

    2024年02月03日
    浏览(29)
  • Load balancer does not have available server for client: userservice

    Load balancer does not have available server for client: userservice(负载均衡器中没有userservice客户端服务) 注意:userservice这个名字是在application.yml文件中配置的 你注册到nacos,nacos就是从这配置中提取名字来作为他的服务名 原因 可能两个服务不在同一个namespace中 比如你某个服务指定了命

    2024年02月02日
    浏览(26)
  • Mantle: A Programmable Metadata Load Balancer for the Ceph File System——论文泛读

    SC 2015 Paper 元数据论文阅读汇总 优化Ceph的元数据局部性和负载平衡。 提高元数据服务性能的最常见技术是在专用的元数据服务器(MDS)节点之间平衡负载 [16, 25, 26, 21, 28]。常见的方法是鼓励独立增长并减少通信,使用诸如懒惰客户端和MDS同步 [16, 18, 29, 9, 30]、inode路径/权限

    2024年01月16日
    浏览(35)
  • 最全解决:微服务之间调用出现Load balancer does not have available server for client

    背景:现在是一个服务A要调用服务B(media-api)中的方法上传文件,因此需要再服务A中写一个feignclient,里面包含的是要调用的B服务的方法,然后出现找不到目标的情况 首先要确保服务和要被调用的服务都已经注册上,这里我用的是nacos。可以看到都是正常注册上来了的。 然后

    2024年02月08日
    浏览(18)
  • [ 云计算 Azure ] Chapter 07 | Azure 网络服务中的虚拟网络 VNet、网关、负载均衡器 Load Balancer

    本系列博文还在更新中,收录在专栏:「Azure探秘:构建云计算世界」 专栏中。 本系列文章列表如下: 【Azure】微软 Azure 基础解析(三)描述云计算运营中的 CapEx 与 OpEx,如何区分 CapEx 与 OpEx 【Azure】微软 Azure 基础解析(四)Azure核心体系结构组件之数据中心、区域与区域

    2024年02月06日
    浏览(34)
  • 【Azure】微软 Azure 基础解析(七)Azure 网络服务中的虚拟网络 VNet、网关、负载均衡器 Load Balancer

    本系列博文还在更新中,收录在专栏:「Azure探秘:构建云计算世界」 专栏中。 本系列文章列表如下: 【Azure】微软 Azure 基础解析(三)描述云计算运营中的 CapEx 与 OpEx,如何区分 CapEx 与 OpEx 【Azure】微软 Azure 基础解析(四)Azure核心体系结构组件之数据中心、区域与区域

    2024年02月07日
    浏览(61)
  • ConsoleApplication815项目(直接加载+VEH Hook Load)

    上线图 ConsoleApplication815.cpp detver.h detours.h 看看免杀效果 再次模型上修改 可以看到此版本是内存做了加解密的 去黑框之后免杀效果测试 360安全中心,360杀毒,windows defender都可以过掉,如下图 总体修改思路就是在上面的基础上修改了特征,按照ConsoleApplication811进行修改的,几

    2024年02月11日
    浏览(25)
  • ConsoleApplication818项目免杀(CreateThreadpoolWait+VEH Hook Load)

    效果 可以看到成功上线 这个先不做免杀,之后补充

    2024年02月10日
    浏览(32)
  • ConsoleApplication17_2项目免杀(Fiber+VEH Hook Load)

    加载方式Fiber+VEH Hook Load Fiber是纤程免杀,VEH是异常报错,hook使用detours来hook VirtualAlloc和sleep,通过异常报错调用实现主动hook 纤程Fiber的概念:纤程是比线程的更小的一个运行单位。可以把一个线程拆分成多个纤程,然后通过人工转换纤程,从而让各个纤程工作。线程的实现

    2024年02月11日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包