我正在运行一个裸机Kubernetes集群,并尝试使用负载均衡器公开我的服务。我通常知道负载均衡器是底层公共云的功能,但是随着最近对Ingress Controllers的支持,似乎现在应该可以将nginx用作自托管负载均衡器了。
到目前为止,我一直在遵循此处的示例来设置nginx Ingress Controller及其背后的一些测试服务。但是,我无法执行步骤6,该步骤显示了负载均衡器所运行的节点的外部IP,因为我的节点在地址部分中没有外部IP,只有LegacyHostIP和InternalIP。
我尝试通过在服务的规范中指定将IP手动分配给群集。但是,这似乎被映射为externalID。
如何手动设置节点的ExternalIP地址?
这是经过测试并适用于在特定节点上创建的 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
Run Code Online (Sandbox Code Playgroud)
假设 nginx 部署上游侦听端口 80、443。 externalIP 是节点的公共 IP。
小智 6
我建议查看 MetalLB: https: //github.com/google/metalb
它允许使用 ARP 或 BGP 在裸机集群中使用外部 IP 地址。它对我们来说非常有效,让您可以像在云中一样简单地请求 LoadBalancer 服务。
| 归档时间: |
|
| 查看次数: |
7265 次 |
| 最近记录: |