K8s 内网穿透 nps

背景

公司内部机房k8s集群用作测试环境,只能内网访问。但对接某些第三方应用,测试的时候需要公网的回调地址。

Nps & Npc

ehang-io/nps

启动 (ehang-io.github.io)

内网穿透工具,找一台有公网ip的机器,按照文档把server端(nps)部署一下

然后dns解析到这台机器上,例如:*.proxy.marun.run 部署好之后,点这个客户端列表 新增,默认配置就ok

新增之后,点击列表最左边的加号,可以看到客户端命令。


因为我们需要访问k8s内网服务,所以我们在k8s内部署一套client(npc)

Dockerfile 我直接用的nps/Dockerfile.npc (github.com)的这个,可以根据自己的需要自己打包镜像,然后传到自己的私有镜像仓库

npc-deploy.yaml

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
kind: Deployment
apiVersion: apps/v1
metadata:
  name: npc
  namespace: nps
spec:
  replicas: 1
  selector:
    matchLabels:
      app: npc
  template:
    metadata:
      labels:
        app: npc
    spec:
      containers:
        - name: npc
          image: 'marunrun/npc:latest'
          args:
            - '-server=127.0.0.1:8024'
            - '-vkey=1234'
            - '-type=tcp'

记得把args里的servervkey值 换成你自己的。


然后去nps后台,添加一个域名解析

主机就是你解析到nps服务主机的域名,目标就是k8s内部服务的dns地址,记得加上端口号

自己访问试试就ok了,其他的配置啥的看看文档就可以了,目前这样的配置已经能解决我的问题了

Built with Hugo
主题 StackJimmy 设计