port-forward и проверка доступа
Чтобы быстро потыкать сервис с ноутбука, не нужен ни NodePort, ни Ingress — есть port-forward.
kubectl port-forward пробрасывает порт с вашей машины напрямую на под или сервис в кластере — удобно для отладки, не публикуя приложение наружу.
Service с типом ClusterIP не виден снаружи кластера. Но во время разработки часто нужно «заглянуть» в него с ноутбука. port-forward создаёт временный туннель: локальный порт → под/сервис. Доступ есть только пока команда запущена.
Проброс на под
Свяжем локальный порт 8080 с портом 80 пода:
kubectl port-forward pod/nginx-pod 8080:80Вывод:
Forwarding from 127.0.0.1:8080 -> 80 Forwarding from [::1]:8080 -> 80
Пока команда работает, открываем в браузере http://localhost:8080 — увидим страницу nginx. Ctrl+C закрывает туннель.
Проброс на сервис
Чаще пробрасывают на сервис — тогда трафик идёт через его балансировку:
kubectl port-forward service/web 8080:80Формат тот же: ЛОКАЛЬНЫЙ:УДАЛЁННЫЙ. Можно слушать на всех интерфейсах флагом --address 0.0.0.0, но для локальной отладки это не нужно.
Когда что использовать
port-forward — только для разработки и отладки. Для постоянного внешнего доступа он не годится (живёт, пока открыт терминал, не балансирует на уровне кластера). Сравним способы доступа:
| Способ | Назначение | Постоянный? |
| port-forward | быстрая отладка с ноутбука | нет |
| NodePort | доступ по порту узла | да |
| LoadBalancer | публичный доступ в облаке | да |
| Ingress | HTTP-роутинг многих сервисов | да |
Итог
- port-forward создаёт временный туннель локальный порт → под/сервис.
- Формат
kubectl port-forward цель ЛОКАЛЬНЫЙ:УДАЛЁННЫЙ. - Это инструмент отладки, а не способ публикации в проде.