Ответ
Сервис с clusterIP: None называется Headless Service. Он не получает виртуальный кластерный IP-адрес и не выполняет балансировку нагрузки или проксирование трафика на уровне Kubernetes.
Основное назначение: Прямое взаимодействие с конкретными подами. DNS-запрос к имени такого сервиса возвращает не один IP (адрес сервиса), а набор IP-адресов всех подов, которые соответствуют селектору сервиса.
Пример манифеста Headless Service:
apiVersion: v1
kind: Service
metadata:
name: cassandra-headless
spec:
clusterIP: None # Ключевой параметр
selector:
app: cassandra
ports:
- port: 9042
Типичные сценарии использования:
- StatefulSet: Для доступа к отдельным экземплярам stateful-приложений (например, узлы Cassandra, MongoDB, Elasticsearch). Каждый под получает стабильное DNS-имя вида
pod-name.service-name.namespace.svc.cluster-domain. - Сервис обнаружения (Service Discovery): Когда клиенту (часто внутри кластера) необходимо знать адреса всех экземпляров приложения для прямого подключения.
- Интеграция со сторонними системами балансировки или мониторинга, которым нужны прямые IP-адреса подов.