创建了一个有状态服务,容器内部开启了22端口用于ssh,80端口用于http访问,5900端口用于VNC连接。

应用路由设置为8080可以正常访问http服务

但我不知道该如何设置,允许我也能够连接ssh和VNC,我把端口改成8022,借助生产的nvidia.test.192.168.10.55.nip.io域名连不上ssh和VNC

非常感谢!

  • kevendeng 回复了此帖
  • MrVBian
    K8s中的Ingress只能转发HTTP连接,所以你通过这个域名是不能连上SSH的。

    虽然Nginx-Ingress自己提供了配置TCP/UDP转发的功能,但需要手动修改Ingress-Controller启动参数、创建Configmap配置项,为Ingress所在Service增加端口,比较麻烦。

    而且TCP/UDP转发也不能像HTTP那样根据条件配置不同后端,它对外的一个端口也就只能提供一个服务的转发,最多也就是多个后端负载均衡,没有了路由,Ingress的意义也不大了。

    所以我个人认为解决你问题的最好方案就是为需要访问的服务创建一个NodePort/LoadBalancer类型的Service,直接暴露即可。

    MrVBian
    K8s中的Ingress只能转发HTTP连接,所以你通过这个域名是不能连上SSH的。

    虽然Nginx-Ingress自己提供了配置TCP/UDP转发的功能,但需要手动修改Ingress-Controller启动参数、创建Configmap配置项,为Ingress所在Service增加端口,比较麻烦。

    而且TCP/UDP转发也不能像HTTP那样根据条件配置不同后端,它对外的一个端口也就只能提供一个服务的转发,最多也就是多个后端负载均衡,没有了路由,Ingress的意义也不大了。

    所以我个人认为解决你问题的最好方案就是为需要访问的服务创建一个NodePort/LoadBalancer类型的Service,直接暴露即可。

      7 天 后

      MrVBian
      这个有很多教程,包括官方教程,只要设置好对应的selector与port参数就行。

      如果你是在云厂商上部署,可以参考对应厂商的k8s LB文档。