我有很多租户在一个Kubernetes集群上运行(在AWS上),每个租户都有一个Pod,暴露一个 TCP 端口(不是HTTP ),一个 UDP 端口。
到目前为止,我有以下服务:
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
要走的路是什么?
答案 0 :(得分:0)
NodePort
更改为ClusterIP
tcp-services
命名空间中编辑configMap ingress-nginx
,添加:data: "8222": your-namespace/my-service:8222
udp-services
相同:data: "8111": your-namespace/my-service:8111
现在,您可以使用Nginx控制器IP <ip:8222>
(TCP)和<ip:8111>
(UDP)从外部访问应用程序
答案 1 :(得分:-1)
@ffledgling提供的description就是您所需要的。
但我必须提一下,如果要暴露端口,则必须使用负载均衡器或将节点暴露给Internet。例如,您可以将节点公开给Internet,并且只允许访问某些必要的端口。