场景: QQ 云有一台服务器,目前回家访问容器内的方案为 nginx -->frps -->frpc -->nodeport -->svc -->pod 目前存在缺点:
每次都要手动修改 svc 暴露 每次都需要手动新增 frpc 配置文件 每次都需要手动添加公网 Nginx
想法 FRPS–> FRPC → Ingress → svc → Pod
我在想能否通过创建 Ingress 自动 watch 配置文件然后重写给 frpc 自动重启服务,外网访问绑定
这种方案有大佬考虑实现吗?
1
nuII 6 天前
frp 支持连续端口
|
![]() |
2
echo1937 6 天前
类似的需求其他人的方案是 tailscale ,在 k8s 集群中起一个服务就通了。
|
3
zhengfan2016 6 天前
?不理解你想实现什么,单纯回家最易用的方案难道不是用 tailscale 异地组网吗
|
![]() |
4
i4t OP @zhengfan2016 #3 公网访问的话,需要手动调整,我想实现的是公网的这种方式
|
![]() |
5
liuhai233 6 天前
我家里小主机用的 k3s + Cloudflare tunnel 实现的公网服务
|
![]() |
6
liuhai233 6 天前
其实只需要在 k8s 启一个 proxy pod 就可以,转发公网的请求到内网的 ingress
|
![]() |
8
cdlnls 6 天前 via Android
云服务器上启动一个 nginx 或者别的代理,把 80 443 的流量转给 ingress 的端口就可以了
|
9
DefoliationM 5 天前
https://github.com/rancher/remotedialer 了解一下? rancher 出品。
|
10
buffzty 5 天前
qq 云 起一个 wg, 本地 k8s node 起一个 wg 连接到 tx 云的 wg, 将 svc,pod,lan 网段加入到 wg 转发规则
这样就实现了全互通.用不着 nginx frp nodeport 这些. 还有你说每次都要手动修改 svc 暴露我没看懂, svc 创建后 ip 不会变的,就算用 frp 也不需要改它啊 |
![]() |
11
Leon6868 5 天前
easytier 组网,无需暴露公网端口,应该能满足你的需求
|
![]() |
12
guanzhangzhang 5 天前
tailscale 可以容器/pod 起,然后设置转发+snat 即可
|
![]() |
13
Curtion 5 天前
@icy37785 你们说的可是家庭网络和云服务器都安装 tailscale ,然后组成一个网络,服务器使用 nginx 反向代理到家庭 tailscale 的 ip 这种模式? 如果是这样我已经试过了会有问题,那就是 tailscale 工作在四层,服务器主动访问家庭网络时会反向打洞,即使云服务器有公网 ip 也会是不是直连,网络质量还是取决于家庭网络 NAT 类型, 不过我发现 frp 出了虚拟组网的功能,这个也许可行
|
14
njzy 4 天前 via iPhone
我就是这么做的 完全可行
1. frps 直接把公有云上的 80 443 端口流量转发到我家里的 homelab k3s 上的 traefik 上 2. traefik 除了常规的 ipv4 的端口 我还开了 ipv6 的端口方便 ipv6 域名直连访问 3. 常规 docker 服务部署在 k3s 中并通过 ingress 配置外网域名 4. 局域网其他服务通过 traefik external service 转发 5. 所有服务配置放在了 GitHub 私有仓库并通过 argocd 自动化部署 非常丝滑 |
![]() |
17
ZxykM 4 天前
我回家都是 easytier 到 ingress 到 svc ,只要组网成功就能访问
|
18
yuanwangshijie 4 天前
可以的,我是 frpc 穿透本地 k8s 的 80 端口,然后公网 nginx 配置自动申请泛域名证书,然后泛域名代理到服务器的 frps 上,这样直接一劳永逸,你只需要在本地给 k8s 服务加路由就行,nginx 和 frp 都不用动,还是 https 访问
|