新托管了一个机房服务器,基本全用开源软件来构建:
那Firewall就用的OPNsense,后端自建Kubernetes,那OPNsense需要当作一个LoadBalance来使用
结构图如下,证书是放在了Nginx ingres上:
那方法有很多,各有利弊,先说第一个,relayd
的做法
relayd是最早的OPNsense的插件,用来做负载均衡,安装这个plugin插件
配置如下:
General Settings:
由于虚机的cpu是4个,所以进程设置成4
Backend Hosts:
后端节点有4个,只写IP即可
Table Checks:
端口检查,因为是直通,所以就设置成TCP检查即可
Tables:
Hosts选中4个节点
Virtual Server:
80和443各有一个
每个呢,设置好前面的监听地址和端口,后端的Table 服务器和Table check的协议,就ok了
最后去 General Settings 选中 Enable Relayd,然后save,就可以了
这么多贴图,是因为如果从CLI配置,其实就一个很简单的relayd.conf文本文件
但是从GUI,就一大堆,而且生成的东西简直不知所云
这样做relayd就相当于一个直通的LoadBalance,把流量送入后端的Nginx ingress所开的NodePort。
这样就可用了。
这样有个弊端,Nginx的ingress拿不到客户端的真实IP,X-forwarded-for无法传过来真的客户端IP,网上查文档是可以的,但是从GUI配了半天,也不知道怎么配,服了也是。