Kubernetes:通过 Ingress 将非 HTTP 请求路由到容器

标签 kubernetes kubernetes-ingress

  • 我在 Mac OS 上使用与 docker 捆绑在一起的本地 kubernetes。
  • 我已经安装了 nginx-ingress-controller .
  • 我设法发送外部 http request via ingress到我的 kubernetes 管理的容器(例如从我的本地浏览器)。所有请求都通过 nginx 端口 80 或 443 发送。

  • 问题是,我只能通过我的 ngnix Controller 路由 http 或 https 请求。
    如何通过入口将非 HTTP 请求(例如数据库或 corba)发送到我的容器?

    最佳答案

    这没有通过入口机制得到很好的支持,并且是一个 open issue .
    有一个使用 nginx-ingress 的 tcp 或 udp 流量解决方法,它将使用 configmap 将暴露的端口映射到 kubernetes 服务。
    this doc .

    使用 tcp-services-configmap 启动入口 Controller (和/或 udp-services-configmap)参数。

    args: 
    - "/nginx-ingress-controller"
    - "--tcp-services-configmap=default/nginx-tcp-configmap"
    - "--v=2"
    

    部署配置映射:
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: nginx-tcp-configmap
    data:
      9000: "default/example-service:8080"
    

    哪里9000是暴露的端口和 8080是服务端口

    关于Kubernetes:通过 Ingress 将非 HTTP 请求路由到容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49439899/

    相关文章:

    ssl - 哪个 Kubernetes 入口 "wins"(同一主机的 tls 和多个入口)?

    kubernetes - 在路径 `/registry` 处公开 Kubernetes 集群内的私有(private) Docker 注册表

    kubernetes - Istio:sidecar EnvoyFilter workloadSelector 未过滤

    vue.js - Vue.js进入Kubernetes集群,刷新后Nginx Ingress返回404

    docker - Ingress-nginx日志-出现很多奇怪的条目

    nginx - 在具有Nginx入口的GKE上使用socket.io

    kubernetes - 在kubernetes上运行的traefik AWS ELB上的真实IP

    Azure kubernetes - 安全 pod 访问资源

    jenkins - 使用 Kubernetes 在 Jenkins 上使用 docker-compose 进行 CI 测试

    gateway - 使用 SDS 的 Istio Ingress Gateway 由于凭证名称而失败