为节点

时间:2016-10-15 12:05:18

标签: kubernetes

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

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

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

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

2 个答案:

答案 0 :(得分:4)

这是经过测试的,适用于在特定节点上创建的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。

答案 1 :(得分:2)

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

它允许使用ARP或BGP在裸机群集中提供外部IP地址。它对我们非常有用,并且允许您像在云中一样简单地请求LoadBalancer服务。