Сервис

В кластере Kubernetes каждый под имеет внутренний IP-адрес. Поды создаются и удаляются, и их IP-адреса меняются, поэтому использование IP-адресов подов напрямую не имеет смысла. Чтобы получить постоянный доступ к подам и отказаться от использования их внутренних IP-адресов, используйте сервис.

Сервис — это объект API Kubernetes (Service), предназначенный для предоставления доступа к приложению, запущенному в виде набора подов в кластере Kubernetes.

С помощью сервиса вы получаете постоянный IP-адрес, который будет существовать на протяжении всего жизненного цикла сервиса, даже при изменении IP-адресов подов. Сервис также обеспечивает балансировку нагрузки. Клиенты отправляют запросы на один IP-адрес, и их запросы балансируются между подами, которые принадлежат сервису.

Набор подов, принадлежащих сервису, определяется селектором. Селектор задается пользователем при создании пода и позволяет фильтровать список ресурсов на основе меток — пар ключ-значение, прикрепленных к ресурсу. Под принадлежит сервису, если имеет все метки, указанные в селекторе.

В зависимости от задачи вы можете использовать сервисы различных типов.

Типы сервиса

В кластерах Kubernetes можно использовать различные типы сервисов, в том числе:

  • ClusterIP
    • Доступ к сервису существует только внутри сети кластера Kubernetes по внутреннему IP-адресу.
    • Не требует использования дополнительных облачных ресурсов.
  • NodePort — расширение типа ClusterIP.
    • Обеспечивает доступ к сервису по внутренним или публичным IP-адресам узлов кластера Kubernetes.
    • Не требует использования дополнительных облачных ресурсов.
  • LoadBalancer — расширение типа NodePort.
    • Обеспечивает доступ к сервису через создаваемый облачный балансировщик нагрузки.
    • Требует использования дополнительных облачных ресурсов — балансировщика нагрузки.

Подробнее о типах сервисов читайте в документации Kubernetes.

Managed Service for Kubernetes позволяет использовать сервисы типа LoadBalancer с публичным IP-адресом на основе сетевого балансировщика нагрузки Yandex Load Balancer.

См. также