【问题标题】:Configure metallb with kubernetes running on different vps servers使用运行在不同 vps 服务器上的 kubernetes 配置 metallb
【发布时间】:2021-01-08 00:35:32
【问题描述】:

我有一个正在运行的 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    

【问题讨论】:

    标签: kubernetes load-balancing devops vps metallb


    【解决方案1】:

    我在不同国家/地区的 VPS 有同样的问题,但 NGINX 入口控制器裸机注意事项不允许 IP NODE 作为“地址”中的 IP/32 范围。

    https://kubernetes.github.io/ingress-nginx/deploy/baremetal/

    MetalLB 需要一个 IP 地址池才能获取 ingress-nginx 服务的所有权。这个池可以定义在一个 ConfigMap 命名为 config 位于与 MetalLB 相同的命名空间中 控制器。这个 IP 池必须专门供 MetalLB 使用,您 无法重用 Kubernetes 节点 IP 或 DHCP 分配的 IP 服务器。

    【讨论】:

    • 这并不能真正回答问题。如果您有其他问题,可以点击 提问。要在此问题有新答案时收到通知,您可以follow this question。一旦你有足够的reputation,你也可以add a bounty 来引起对这个问题的更多关注。 - From Review
    【解决方案2】:

    在 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 创建一个配置映射。由于您没有范围,您可以将/32 设置为您的 ips 的子网,如下例所示。

    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
    

    它应该适用于您的场景。

    【讨论】:

    • 感谢您的回答,但我认为这些步骤是在配置 metal lb 之后进行的,所以在此之前,我想配置 metal lb 那么如何在 metallb config 中添加 IP 范围
    • @tareksalem 我已经用相关配置更新了我的答案。
    猜你喜欢
    • 1970-01-01
    • 2014-12-14
    • 2017-02-21
    • 1970-01-01
    • 2020-04-17
    • 1970-01-01
    • 1970-01-01
    • 2013-10-02
    • 1970-01-01
    相关资源
    最近更新 更多