You need to enable JavaScript to run this app.
导航

Ingress 无法访问 TCP、UDP 服务,该怎么办?

最近更新时间2023.11.21 19:51:59

首次发布时间2023.11.21 19:51:59

问题现象

Ingress 无法访问 TCP、UDP 服务,访问不通。

解决方案

添加 TCP 和 UDP 服务即可,参考操作步骤如下,更多信息参见:暴露 TCP 和 UDP 服务

  1. 在对应 ConfigMap(默认为 kube-system 命名空间下的 tcp-services 和 udp-services)中添加对应条目。

例如:将 default 空间下 example-go 的 8080 端口映射到 9000 端口。示例如下:

apiVersion: v1
kind: ConfigMap
metadata:
  name: tcp-services
  namespace: ingress-nginx
data:
  9000: "default/example-go:8080"  # 8080端口映射到9000端口。
  1. 在 Ingress Deployment(默认为 kube-system 命名空间下的 nginx-ingress-controller)中添加所映射的端口。

  2. 在 Ingress 对应的 Service 中添加所映射的端口。示例如下:

apiVersion: v1
kind: Service
metadata:
  name: ingress-nginx
  namespace: ingress-nginx
  labels:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
spec:
  type: LoadBalancer
  ports:
    - name: http
      port: 80
      targetPort: 80
      protocol: TCP
    - name: https
      port: 443
      targetPort: 443
      protocol: TCP
    - name: proxied-tcp-9000
      port: 9000
      targetPort: 9000
      protocol: TCP
  selector:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx