Служба или сервис в Kubernetes – это абстракция, описывающая набор концептуальных подов, в которых выполняется приложение, и политику доступа для этих типов подов.
Если под должен подключиться к другому поду, он должен сначала определить свой IP-адрес.
Сервисы Kubernetes также позволяют находить определенные поды.
IP-адреса подов в сетевой модели Kubernetes являются абстрактными; если под сломается или будет уничтожен, новый под почти наверняка получит новый IP-адрес.
Сервис в Kubernetes часто предоставляет доступ поду к сети или группе подов.
Службы выбирают поды в зависимости от их имен, и когда сетевые запросы отправляются таким службам, они идентифицируют все поды в кластере, которые соответствуют метке службы, выбирают одну из них, а затем отправляют ей сетевой запрос.
Категории сервисов Kubernetes
Сервисы Kubernetes делятся на четыре основные категории:
ClusterIP
В Kubernetes служба ClusterIP действительно является стандартной формой службы.
Она предоставляет сервис в кластере Kubernetes, которым могут управлять другие приложения Kubernetes, не предоставляя доступа извне.
Это IP-адрес, который кластер Kubernetes и все его службы могут использовать для внутренних целей.
В ОТЛИЧИЕ IP-АДРЕСА POD, IP-адрес, используемый в ClusterIP, недоступен за пределами кластера.
NodePort
Каждая нода в вашем кластере имеет открытый порт, называемый NodePort.
Даже если ваше приложение работает на другом хосте, Kubernetes напрямую направляет трафик от NodePort к службе.
Каждый кластер Kubernetes принимает NodePort, но вам придется изменить свои брандмауэры, если вы используете поставщика облачных услуг, например Google Cloud.
LoadBalancer
LoadBalancer – это популярный способ представить сервис Kubernetes внешнему миру через Интернет.
LoadBalancer можно использовать аналогично ClusterIP и NodePort.
Кластер подойдет к поставщику облака и построит балансировщик нагрузки, если вы выберете LoadBalancer в качестве категории службы.
Трафик будет перенаправлен на серверные поды, когда он поступит на этот балансировщик нагрузки.
Особенности этого метода определяются тем, как каждый поставщик балансировки нагрузки реализует свою технологию.
ExternalName
Поскольку службы ExternalName не имеют селекторов, фиксированных портов или эндпоинтов, они могут перенаправлять трафик на внешнюю службу.
Эта форма связывает службу с внешним именем.
Служба выполняет это, возвращая значение записи CNAME.
См. также: