使用在不同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

它应该适合您的情况。