#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. извините за формат