EndpointSlice описывает адреса и состояние экземпляров. Service задаёт вход к приложению и правила их выбора. Один срез может быть лишь частью списка службы.
Список адресов EndpointSlice
Определение
Список адресов EndpointSlice — объект Kubernetes с частью сетевых адресов приложения, их портами и условиями готовности. Несколько таких объектов могут обслуживать один Service. Для службы с селектором эти объекты обновляет контроллер по подходящим Pod.
Также ищут: Kubernetes EndpointSlice · service endpoint slice · срез endpoint-ов · EndpointSlice
Зачем это знать
При отказе службы нужно различать три случая: подходящих адресов нет, адреса есть, но они не готовы, или выбранный экземпляр не отвечает. Просмотр одного EndpointSlice может показать только часть картины. Проверяйте все срезы, относящиеся к нужному Service.
Карта понятия
Что подтверждено
Для Service с селектором контроллер обновляет EndpointSlice по подходящим Pod. Один Service может иметь несколько срезов; просмотр одного объекта не гарантирует полный перечень адресов.
Граница применимости: Автоматически управляемые EndpointSlice службы Kubernetes с селектором.
Признак готовности адреса отражает условия, переданные системой управления. Он не заменяет сквозную проверку операции приложения и зависит от качества настроенной проверки готовности.
Граница применимости: Условия EndpointSlice и проверки Pod Kubernetes.
Неготовый Pod может оставаться в EndpointSlice с признаком ready=false. Адрес в списке ещё не означает участие в обычном трафике Service. При диагностике проверяйте и адрес, и условия готовности.
Граница применимости: Обычный Service без publishNotReadyAddresses; обработка завершающихся соединений проверяется отдельно.
EndpointSlice группирует адреса, в частности, по семейству IP и набору портов. Число срезов не равно числу экземпляров приложения и само по себе не показывает его доступность.
Граница применимости: Группировка сетевых адресов в EndpointSlice Kubernetes.
У EndpointSlice есть отдельные условия ready, serving и terminating. Завершение экземпляра и его способность обслуживать запросы — разные признаки; одно булево поле не описывает весь переход.
Граница применимости: Условия EndpointSlice Kubernetes; поддержка и использование потребителем требуют проверки версии.
Настройка publishNotReadyAddresses меняет обычное использование готовности службой. Поэтому отсутствие исключения неготовых адресов нужно проверять и по конфигурации Service, а не сразу считать ошибкой проверки Pod.
Граница применимости: Service с включённым publishNotReadyAddresses и связанные EndpointSlice Kubernetes.
Не путать
Что проверить
- Найдите все EndpointSlice, принадлежащие нужному Service.
- Сопоставьте адреса, порты и семейство IP с реальными Pod.
- Проверьте ready, serving и terminating, а не только наличие адреса.
- Прочитайте publishNotReadyAddresses в конфигурации Service.
- При пустом наборе проверьте селектор и метки Pod.
- При неготовых адресах разберите условия Pod и результат проверки готовности.
- Подтвердите работоспособность запросом к приложению по принятому пути доступа.
Первоисточники
- Liveness, Readiness, and Startup Probes
Разделяет проверки готовности, работоспособности и запуска. Объясняет их действия и риск каскадного отказа при неверной настройке.