有没有 k8s + ingress +frp 这种方案

54 天前
 i4t

场景: QQ 云有一台服务器,目前回家访问容器内的方案为 nginx -->frps -->frpc -->nodeport -->svc -->pod 目前存在缺点:

每次都要手动修改 svc 暴露 每次都需要手动新增 frpc 配置文件 每次都需要手动添加公网 Nginx

想法 FRPS–> FRPC → Ingress → svc → Pod

我在想能否通过创建 Ingress 自动 watch 配置文件然后重写给 frpc 自动重启服务,外网访问绑定

这种方案有大佬考虑实现吗?

2275 次点击
所在节点    Kubernetes
18 条回复
nuII
54 天前
frp 支持连续端口
echo1937
54 天前
类似的需求其他人的方案是 tailscale ,在 k8s 集群中起一个服务就通了。
zhengfan2016
54 天前
?不理解你想实现什么,单纯回家最易用的方案难道不是用 tailscale 异地组网吗
i4t
53 天前
@zhengfan2016 #3 公网访问的话,需要手动调整,我想实现的是公网的这种方式
liuhai233
53 天前
我家里小主机用的 k3s + Cloudflare tunnel 实现的公网服务
liuhai233
53 天前
其实只需要在 k8s 启一个 proxy pod 就可以,转发公网的请求到内网的 ingress
icy37785
53 天前
@i4t #4 你要解决的问题就是应该用 tailscale 解决,你说的公网访问跟他说别的回家是一回事
cdlnls
53 天前
云服务器上启动一个 nginx 或者别的代理,把 80 443 的流量转给 ingress 的端口就可以了
DefoliationM
53 天前
https://github.com/rancher/remotedialer 了解一下? rancher 出品。
buffzty
53 天前
qq 云 起一个 wg, 本地 k8s node 起一个 wg 连接到 tx 云的 wg, 将 svc,pod,lan 网段加入到 wg 转发规则
这样就实现了全互通.用不着 nginx frp nodeport 这些.
还有你说每次都要手动修改 svc 暴露我没看懂, svc 创建后 ip 不会变的,就算用 frp 也不需要改它啊
Leon6868
53 天前
easytier 组网,无需暴露公网端口,应该能满足你的需求
guanzhangzhang
53 天前
tailscale 可以容器/pod 起,然后设置转发+snat 即可
Curtion
53 天前
@icy37785 你们说的可是家庭网络和云服务器都安装 tailscale ,然后组成一个网络,服务器使用 nginx 反向代理到家庭 tailscale 的 ip 这种模式? 如果是这样我已经试过了会有问题,那就是 tailscale 工作在四层,服务器主动访问家庭网络时会反向打洞,即使云服务器有公网 ip 也会是不是直连,网络质量还是取决于家庭网络 NAT 类型, 不过我发现 frp 出了虚拟组网的功能,这个也许可行
njzy
52 天前
我就是这么做的 完全可行
1. frps 直接把公有云上的 80 443 端口流量转发到我家里的 homelab k3s 上的 traefik 上
2. traefik 除了常规的 ipv4 的端口 我还开了 ipv6 的端口方便 ipv6 域名直连访问
3. 常规 docker 服务部署在 k3s 中并通过 ingress 配置外网域名
4. 局域网其他服务通过 traefik external service 转发
5. 所有服务配置放在了 GitHub 私有仓库并通过 argocd 自动化部署 非常丝滑
njzy
52 天前
@njzy 最早用的 tailscale 组网 发现非常不稳定 k3s 偶尔失联
ysicing
52 天前
@njzy 现在好多了
ZxykM
51 天前
我回家都是 easytier 到 ingress 到 svc ,只要组网成功就能访问
yuanwangshijie
51 天前
可以的,我是 frpc 穿透本地 k8s 的 80 端口,然后公网 nginx 配置自动申请泛域名证书,然后泛域名代理到服务器的 frps 上,这样直接一劳永逸,你只需要在本地给 k8s 服务加路由就行,nginx 和 frp 都不用动,还是 https 访问

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1147786

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX