kubernetes - Kubernetes 中如何让服务 TCP/UDP 端口可被外部访问?

标签 kubernetes

我有许 Multi-Tenancy 在一个 Kubernetes 集群(在 AWS 上)上运行,其中每个租户都有一个 Pod,该 Pod 公开一个 TCP 端口(不是 HTTP)和一个 >UDP端口。

  • 我不需要负载平衡功能。
  • 该方法应公开一个可供外部使用的 IP 地址,并为每个租户提供专用端口
  • 我不想将节点直接暴露到互联网

到目前为止我有以下服务:

apiVersion: v1
kind: Service
metadata:
  name: my-service
  labels:
    app: my-app
spec:
  type: NodePort
  ports:
    - port: 8111
      targetPort: 8111
      protocol: UDP
      name: my-udp
    - port: 8222
      targetPort: 8222
      protocol: TCP
      name: my-tcp
  selector:
    app: my-app

该走哪条路?

最佳答案

  • Deploy AWS 集群上的 NGINX 入口 Controller
  • 将您的服务我的服务类型从 NodePort 更改为至ClusterIP
  • 编辑 configMap tcp-servicesingress-nginx命名空间添加:
data:
  "8222": your-namespace/my-service:8222
  • 与 configMap 相同 udp-services :
data:
  "8111": your-namespace/my-service:8111

现在,您可以使用 nginx-controller IP <ip:8222> 从外部访问您的应用程序(TCP) 和 <ip:8111> (UDP)

关于kubernetes - Kubernetes 中如何让服务 TCP/UDP 端口可被外部访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50690269/

相关文章:

kubernetes - Istio-proxy 不会通过 global.proxy.includeIPRanges 配置拦截传出流量

kubernetes - 在 kubernetes 中使用 CrashLoopBackOff 状态重新部署 statefulset

jenkins - 具有奇数资源编号的 Kubernetes Jenkins Slave

kubernetes - 使用 Redis 处理程序在 Istio 中进行速率限制

kubernetes - 解决所需的RBAC角色无法为用户获取路径 “/”

azure - 无法使用 Azure Devops 在 Kubernetes 上运行 VSTS 代理

kubernetes - 如何在Kubernetes入口 Controller 中将请求URI的部分作为自定义 header 传递

kubernetes - 我无法在 centos 中运行的 rancher pod 内访问互联网

amazon-web-services - 在 EKS 集群中挂载 EFS : example deployment fails

kubernetes - Helm : Incompatible versions between client and server