Контейнеры и оркестрация · проверено по источникам

Служба Service в Kubernetes

Service — объект Kubernetes, который задаёт способ сетевого доступа к приложению. Обычная служба ClusterIP предоставляет стабильный адрес и порт для меняющегося набора Pod. Селектор выбирает подходящие экземпляры, а EndpointSlice хранит их адреса и состояние готовности.

Также ищут: Service Kubernetes · K8s Service · stable service endpoint · Kubernetes Service

Практический смысл

Почему это важно

У клиента может успешно разрешаться имя службы, хотя за ним нет ни одного готового приложения. При приёмке проверьте весь путь: имя, адрес и порт Service, селектор, EndpointSlice и ответ нужного экземпляра. Создание службы не запускает приложение автоматически.

Доказательная часть

Что подтверждено

  1. Обычная служба ClusterIP предоставляет стабильный адрес для обращения к меняющимся экземплярам приложения. При замене Pod клиенту не нужно вручную подставлять каждый новый адрес Pod.

    Граница применимости: Service типа ClusterIP; службы без виртуального адреса и другие типы имеют свои правила.

  2. Service задаёт доступ к подходящим сетевым адресам, но не создаёт копии приложения. Число Pod поддерживает контроллер нагрузки, а готовность экземпляров определяется отдельно.

    Граница применимости: Service в сопоставлении с Deployment и проверками состояния Kubernetes.

  3. У Service может быть исправное имя DNS и выделенный адрес при нуле готовых экземпляров. Разрешение имени проверяет поиск службы, но не доказывает, что за ней есть приложение, способное ответить клиенту.

    Граница применимости: Обычная служба ClusterIP с именем DNS и отбором готовых Pod.

  4. Селектор Service выбирает Pod по меткам. Ошибка селектора может оставить службу без нужных экземпляров или выбрать чужие, даже если требуемые Pod запущены и готовы.

    Граница применимости: Service с селектором Pod Kubernetes.

  5. Поле port задаёт порт Service, targetPort — порт приложения на выбранной стороне. Служба с port=80 и targetPort=8080 направляет обращение на порт 8080; приложение должно действительно слушать этот порт.

    Граница применимости: Обычный TCP Service Kubernetes с числовым targetPort.

  6. Служба с clusterIP=None не получает виртуальный адрес ClusterIP. Её нельзя проверять по той же модели единого виртуального адреса: клиент получает сведения об отдельных адресах приложения.

    Граница применимости: Служба Kubernetes без виртуального адреса, с селектором; конкретный способ разрешения зависит от настройки DNS.

Граница терминов

Не путать

Список адресов EndpointSlice

Service задаёт способ доступа и отбора экземпляров, EndpointSlice хранит текущие адреса и условия. Исправное имя Service не заменяет проверку того, кто сейчас способен обслуживать запросы.

Перед спецификацией

Что проверить

  1. Установите тип Service и наличие или отсутствие виртуального адреса.
  2. Сверьте селектор с фактическими метками нужных Pod.
  3. Проверьте port, targetPort и протокол по пути до приложения.
  4. Посмотрите все связанные EndpointSlice, их адреса, порты и готовность.
  5. Проверьте разрешение имени и реальный ответ приложения раздельно.
  6. Убедитесь, что службу обслуживает ожидаемый выпуск приложения.
  7. Испытайте замену Pod: клиент должен продолжать использовать принятый способ доступа.
Открытые основания

Первоисточники

  • Официальная документация

    Service

    Kubernetes · Kubernetes current documentation

    Описывает сетевой доступ через Service к меняющемуся набору экземпляров приложения и связанные EndpointSlice.

    Открыть первоисточник
  • Официальная документация

    Deployments

    Kubernetes · Kubernetes current documentation

    Описывает управление ReplicaSet, стратегии обновления, параметры maxUnavailable и maxSurge, ход выпуска и историю для отката.

    Открыть первоисточник
  • Официальная документация

    Liveness, Readiness, and Startup Probes

    Kubernetes · Kubernetes current documentation

    Разделяет проверки готовности, работоспособности и запуска. Объясняет их действия и риск каскадного отказа при неверной настройке.

    Открыть первоисточник
  • Официальная документация

    EndpointSlices

    Kubernetes · документация Kubernetes v1.37, страница открыта 6 сентября 2026 года

    Открыт редактором 6 сентября 2026 года, заголовок и версия документа сверены. Адреса и условия ready/serving/terminating; несколько срезов одной службы.

    Открыть первоисточник
Сообщить об ошибке

Опишите проблему — постараемся исправить как можно скорее.

Спасибо!

Получили ваше сообщение.
Подтвердите действие