介绍
TrueNAS SCALE有两种映射端口的模式:NodePort和LoadBalancer,现在社区主要是使用LoadBalancer的方式映射端口。大家不必理解什么是LoadBalancer,什么是NodePort。
实现设置独立IP是利用到metallb。一旦设置metallb后,每个应用(用simple和LoadBalancer的)都必须分配一个IP,可以手动分配也可以自动。
关闭集成的负载均衡器
系统版本必须高于RC2
在应用-设置-高级设置
取消勾选Enable Integrated Loadbalancer
安装metallb
名字复制它的名字
下一步
点击添加,名字自己随便写
点击添加,输入你想让应用分配的你的内网IP范围,注意不要和已有的IP冲突。可以路由器上改一下DHCP分配的范围,避免冲突
手动指定IP部署
已经部署的应用可以在命令行输入k3s kubectl get svc -A
查看IP
只要在Networking and Services分类下Service Type选择LoadBalancer (Advanced),然后LoadBalancer IP填入你想要的IP即可(要在刚刚设置metallb的IP范围内)
如果一个应用有多个Service Type,每个的IP不能一样
不填或者使用simple就会自动随机分配IP
注意
这个独立IP不能用于分流,应用默认的出口流量是通过SCALE本身的IP
由图可见,访问我的网关并不是直接访问的,是通过SCALE的本体转发的
如果你觉得本教程对你有帮助,请随意打赏,谢谢。
2 条评论
楼主您好。我在某次设备意外断电恢复后,所有使用balancerIp的容器都无法访问了,经过排查发现system-metallb日志报错 "error":"no available IPs","level":"error","msg":"IP allocation failed","op":"allocateIPs",但是没有头绪怎么解决。
这里经过实践发现metallb提供的external ip无法正常访问,经过排查,根据https://github.com/metallb/metallb/issues/1154 可得,在安装metallb这一步时,需要配置l2 advertisement才可以正常使用