使用在不同vps服务器上运行的kubernetes配置metallb

问题描述

我有一个正在运行的Kubernetes群集,该群集由3个节点和一个在VPS服务器上运行的母体组成,每个节点和主节点都有自己的公用IP和浮动IP,并且所有这些IP与其他IP不同

我正在尝试将metallb配置为Kubernetes集群的负载平衡器,但我不知道如何在配置文件中将metalLb IP设置为范围

这是我的服务器的IP示例

  • 115.203.150.255
  • 94.217.238.58
  • 46.12.5.65
  • 76.47.79.44

正如您在此处看到的那样,每个IP不同,那么如何在metallb配置映射中设置IP范围?

以下是配置映射的示例

apiVersion: v1
kind: ConfigMap
metadata:
  namespace: metallb-system
  name: config
data:
  config: |
    address-pools:
    - name: default
      protocol: layer2
      addresses:
      - PUBLIC_IP-PUBLIC_IP    

解决方法

在Metallb文档中提到您可以使用某些IP metallb.universe.tf/address-pool。参见here

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

production-public-ips必须按照here所示进行配置。

对于configure MetalLB,您应该使用ips创建一个configmap。由于没有范围,因此可以将/32设置为IP的子网,如下面的示例。

apiVersion: v1
kind: ConfigMap
metadata:
  namespace: metallb-system
  name: config
data:
  config: |
    address-pools:
    - name: production-public-ips
      protocol: layer2
      addresses:
      - 115.203.150.255/32
      - 94.217.238.58/32
      - 46.12.5.65/32
      - 76.47.79.44/32

它应该适合您的情况。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...