наконец решил это проблему.
сначала ставим сам metalLB (будьте внимательны в зависимости от версии будет меняться файл конфига)
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.14.5/config/manifests/metallb-native.yaml
потом запускаем список ip адресов
pool-ip.yml
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
name: pool-ip
namespace: metallb-system
spec:
addresses:
- 192.168.0.170-192.168.0.200
kubectl -n metallb-system apply -f pool-ip.yml
потом обязательно проверяем создался ли список ip адресов
kubectl -n metallb-system get IPAddressPool
если вылетает подобная ошибка
Error from server (InternalError): error when creating "metalLB-config.yaml": Internal error occurred: failed calling webhook "ipaddresspoolvalidationwebhook.metallb.io": failed to call webhook: Post "https://metallb-webhook-service.metallb.svc:443/validate-metallb-io-v1beta1-ipaddresspool?timeout=10s": no endpoints available for service "metallb-webhook-service"
то запускает эту команду, и после ошибки не будет
kubectl delete validatingwebhookconfigurations metallb-webhook-configuration
после чего запускает что то типа провайдера до этих ip адресов
l2-advertisement.yml
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
name: k3s-lb-pool
namespace: metallb-system
spec:
ipAddressPools:
- pool-ip
kubectl apply -f l2-advertisement.yml
после чего проверяем подсосал ли он ip адреса
kubectl get l2advertisement -A
После всего этого Load Balancer должен быть доступен