我有一个eks集群,全部启动并运行。我想在端口5000上运行一个侦听tcp请求的服务。我正在尝试阅读它,但我能找到的所有指南都使用http作为示例。我想我对所有不同的概念都有点困惑。如果我定义:
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
type: LoadBalancer
ports:
- port: 5000
targetPort: 5000
protocol: TCP然后运行这个(实际上是使用helm),我可以在aws-console上看到创建了一个经典的负载均衡器。但我不能ping它。
那么基本上,我如何创建一个将端口5000转发到我的服务的网络负载均衡器?这看起来应该很简单,因为我找不到怎么做。最终,我希望拥有一个用于nlb的staticIP,这样我就可以向该端口发送请求。我需要安装nginx (或其他入口控制器)才能工作吗?
发布于 2021-01-27 22:01:00
首先,您正在以正确的方式创建具有LoadBalancer类型的服务。通过查看Service.yaml内容,唯一缺少的是服务对象中的选择器字段,通过该字段,您的服务不知道在哪些pod处转发流量。尝试添加它。
如果您打算只公开一个服务,那么LoadBalancer类型是有意义的。但是,如果您要拥有多个服务,那么创建多个LoadBalancer服务的成本将会很高。在这种情况下,Nginx Ingress可以帮助您只需要一种LoadBalancer类型的服务。参考https://medium.com/better-programming/how-to-expose-your-services-with-kubernetes-ingress-7f34eb6c9b5a
https://stackoverflow.com/questions/65919666
复制相似问题