首页 文章

为节点分配外部IP

提问于
浏览
4

我正在运行裸机Kubernetes集群并尝试使用Load Balancer来公开我的服务 . 我通常知道Load Balancer是底层公共 Cloud 的一个功能,但是最近对Ingress控制器的支持似乎现在应该可以使用nginx作为自托管负载均衡器 .

到目前为止,我一直在关注示例here来设置一个nginx Ingress Controller以及它背后的一些测试服务 . 但是,我无法按照步骤6显示运行负载均衡器的节点的外部IP,因为我的节点在地址部分没有ExternalIP,只有LegacyHostIP和InternalIP .

我已经尝试通过在服务规范中指定ExternalIP来为我的集群手动分配一个ExternalIP . 但是,这似乎被映射为externalID .

如何手动设置节点的ExternalIP地址?

2 回答

  • 4

    我建议查看MetalLB:https://github.com/google/metallb

    它允许使用ARP或BGP在裸机群集中使用externalIP地址 . 它对我们很有用,并允许您像在 Cloud 中一样简单地请求LoadBalancer服务 .

  • 1

    这是经过测试的,适用于在特定节点上创建的nginx服务 .

    apiVersion: v1
    kind: Service
    metadata:
        name: nginx
        namespace: default
    spec:
        ports:
        -   port: 80
            protocol: TCP
            targetPort: 80
            name: http
        -   port: 443
            protocol: TCP
            targetPort: 443
            name: https
        externalIPs:
          - '{{external_ip}}'
        selector:
            app: nginx
    

    假设nginx部署上游侦听端口80,443 . externalIP是节点的公共IP .

相关问题