Я только что начал с Kubernetes, и я смущен различием между типами NodePort и LoadBalancer.
Разница, которую я понимаю, заключается в том, что LoadBalancer не поддерживает UDP, но помимо этого, когда мы создаем службу либо nodeport, либо loadbalancer, мы получаем IP-адрес и порт службы, NodePort и конечные точки.
От Kubernetes docs:
NodePort: поверх внутреннего IP-кластера, выставляют службу на порт на каждом node кластера (один и тот же порт на каждом node). Вы сможете связаться с сервисом на любом NodeIP: NodePortадрес.
LoadBalancer: поверх внутреннего IP-адреса кластера и выставляя службу в NodePort, спросите у облачного провайдера о нагрузке балансировщик, который пересылает на службу, представленную как NodeIP: NodePortдля каждого Node.
Итак, я всегда получаю доступ к сервису на nodeip: nodeport. Мое понимание заключается в том, что всякий раз, когда мы обращаемся к узлу node: nodeport, kubeproxy перехватывает запрос и пересылает его соответствующему модулю.
Другое упоминание о LoadBalancer заключается в том, что мы можем иметь внешний LB, который будет LB между узлами. Что мешает нам помещать LB для сервисов, созданных как nodeport?
Я действительно смущен. Большинство документов или руководств говорят только о сервисе LoadBalancer, поэтому я не мог найти много в Интернете.
Цените, если кто-то может устранить мои сомнения.
Спасибо