首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用tcp公开k8s服务

使用tcp公开k8s服务
EN

Stack Overflow用户
提问于 2021-01-27 20:58:51
回答 1查看 38关注 0票数 0

我有一个eks集群,全部启动并运行。我想在端口5000上运行一个侦听tcp请求的服务。我正在尝试阅读它,但我能找到的所有指南都使用http作为示例。我想我对所有不同的概念都有点困惑。如果我定义:

代码语言:javascript
复制
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 (或其他入口控制器)才能工作吗?

EN

回答 1

Stack Overflow用户

发布于 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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65919666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档