Получите `` Внешний IP '' для подов в Bare Metal /On Prem Kubernetes

Я хочу предоставить модули с внешними общедоступными IP-адресами (без использования опции NodePort). Пожалуйста, дайте мне знать, как достичь этого (подробно) в Bare Metal Kubernetes (без использования облачного провайдера). Я пробовал MetalLB, но безуспешно, поскольку диапазоны IP-адресов отличаются от моих узлов.

Моя конфигурация выглядит следующим образом

 apiVersion: v1
 kind: ConfigMap
 metadata:
   namespace: metallb-system        
   name: config
 data:
   config: |
     address-pools:
     - name: default
       protocol: layer2
       addresses:
       - 192.249.6.75-192.249.6.79


kubectl get pods -o wide --all-namespaces

<output omitted>
metallb-system         controller-65895b47d4-cbnpd                                  1/1     Running            1          26d   192.168.182.12    worker3   <none>           <none>
metallb-system         speaker-6zfw8                                                1/1     Running            1          26d   192.168.56.102    worker1   <none>           <none>
metallb-system         speaker-76hvg                                                1/1     Running            1          26d   192.168.56.103    worker2   <none>           <none>
metallb-system         speaker-qkpwb                                                1/1     Running            2          26d   192.168.56.101    master    <none>           <none>
metallb-system         speaker-qqhng                                                1/1     Running            1          26d   192.168.56.104    worker3   <none>           <none>

CIDR подсети узла - 192.168.0.0/16.

Спасибо.

1 ответ

Вы можете настроить диапазоны IP для metalLB в его конфигурации: см. раздел конфигурации

однако обратите внимание, что службы типа LoadBalancer всегда должны иметь IP-адреса, отличные от узлов, независимо от того, какую реализацию внешнего LB вы используете. в противном случае локально открытые порты на узлах будут конфликтовать с портом служб.

Обновить

при использовании metalLB в режиме L2 пул адресов должен находиться в пределах CIDR той (V)LAN, где расположены узлы, иначе ARP не будет работать. измените свою конфигурацию metalLB, например, на192.168.100.10-192.168.100.20 (убедитесь, что он не конфликтует с существующими машинами в вашей сети, и в идеале перенастройте dhcp, чтобы его пул для новых машин не конфликтовал с пулом metalLB)

Другие вопросы по тегам