前言

内网中创建的服务,一般都需要创建ingress才能从外部进行访问,这对调试或者尝试在容器运行中再次跑新服务监听端口会比较困难。目前针对这种需求,提供一下处置方式

VPN方式

实现:使用tailscale、wireguard、kubevpn 进行组网,保证外部设备通过vpn接入的时候,可以直接通过内部ip进行访问
优点:

  1. 一次配置即可以接入内部ip访问所有端点、无需ingress
  2. 支持TCP/UDP层所有协议
    缺点:
  3. 对当前环境嵌入较大,生产环境不适宜布置
  4. 流量的监控带来负担

代理方式

实现:使用nginx、privoxy 作为一个端点进行代理,外部通过ingress访问端点,通过泛域名或者自定义path的方式,访问内部地址
优点:

  1. 侵入性较小,只创建一个pod、一个ingress
    缺点:
  2. 仅支持http协议
  3. 仍需要组装url,不能直接访问对应ip

虚拟机方式

实现:对于含有kvm内核模块的,使用带界面的(centos/windows)pod嵌入其中,就可以在web页面中访问这个虚拟机,再访问外部的(此时就是k8s内)ip
有点:

  1. 侵入性较小,同时可以附带其他功能
    缺点:
  2. 环境要求太高,需要kvm模块
  3. 调试需要在pod中进行