Практическое задание

Эта задача — шаг 5 курса «Kubernetes на практике»

Service не находит поды

средне~10 мин

В кластере есть Deployment shop (nginx) и Service shop перед ним, но запрос к сервису не доходит: wget http://shop из пода client не получает ответа. Найди, почему Service не видит поды, и почини Service. Deployment shop не трогай.

Что потренируешь:
  • kubernetes
  • kubectl
  • service
  • selector
  • endpoints

Разбор темы

Service не знает о Deployment'ах: он выбирает поды по меткам. Всё, что совпадает с его selector, попадает в Endpoints (EndpointSlice) — список адресов, куда kube-proxy направляет трафик с адреса сервиса. Если селектор ни с чем не совпадает, сервис существует, имя резолвится, но Endpoints пусты и соединение уходит в никуда. Поэтому первое, что смотрят при «сервис не отвечает», — kubectl get endpoints: пусто — значит, разбираться с метками и селектором, а не с приложением.

Что проверяется

  1. у сервиса shop есть эндпоинты
  2. client получает ответ от shop
  3. Deployment shop не изменён

Как это выглядит