Сбой балансировщика нагрузки Metallb Kubernetes без порта

#kubernetes #load-balancing #metallb

#kubernetes #балансировка нагрузки #metallb

Вопрос:

Я использую Metallb для простого кластера kubernetes.

Я изменил конфигурационную карту, как показано ниже,

 apiVersion: v1
kind: ConfigMap
metadata:
  namespace: metallb-system
  name: config
data:
  config: |
    address-pools:
    #- name: default
      #protocol: layer2
      #addresses:
      #- 192.168.1.240-192.168.1.250
    - addresses:
      - <Public_IP_01>/32
      - <Public_IP_02>/32
      - <Public_IP_03>/32
      name: prod
      protocol: layer2
 

И как бы ни был назначен правильный IP-адрес, он недоступен по http://<Public_IP_01>, но он доступен через http://<Public_IP_01>:31158. Я чувствую, что он работает как порт узла, а не как балансировщик нагрузки

 k get svc -A
default       nginx-service   LoadBalancer   10.98.4.122      <Public_IP_01>     80:31158/TCP             7m3s
 

Есть идеи, как принудительно использовать трафик на порту 80.

Спасибо,

Комментарии:

1. Это minikube или kubeadm? Как вы развертывали MetalLB манифесты Helm или YAML? Не могли бы вы предоставить выходные kubectl describe service <service name> -n <namespace> данные и kubectl -n <namespace> get endpoints <service>

2. k describe service odoo-srv -n odoo Name: odoo-srv Namespace: odoo Labels: name=odoo Annotations: metallb.universe.tf/address-pool: prod Selector: app=odoo,tier=frontend Type: ClusterIP IP: 10.111.164.114 Port: <unset> 80/TCP TargetPort: 8069/TCP Endpoints: 10.244.1.193:8069 Session Affinity: None Events: <none>

3. k -n odoo get endpoints odoo-srv NAME ENDPOINTS AGE odoo-srv 10.244.1.193:8069 11m

4. NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE ingress-nginx service/ingress-nginx-controller NodePort 10.101.224.193 <none> 80:32196/TCP,443:31575/TCP 44d ingress-nginx service/ingress-nginx-controller-admission ClusterIP 10.98.201.38 <none> 443/TCP 44d odoo service/odoo-srv ClusterIP 10.111.164.114 <none> 80/TCP 8m39s

5. извините за формат