Ответ
Для доступа к ресурсам внутри кластера Kubernetes есть несколько основных методов, которые я использую в зависимости от задачи:
1. Временный доступ к поду для отладки:
kubectl exec -it <pod-name> -c <container-name> -- /bin/bash
Я часто добавляю флаг --namespace для работы в конкретном неймспейсе.
2. Проброс портов для локального доступа:
kubectl port-forward pod/<pod-name> 8080:80
# Или через сервис
kubectl port-forward svc/<service-name> 8080:80
Этот метод идеален для быстрой отладки веб-приложений без их публикации наружу.
3. Доступ через сервисы:
- NodePort — для тестовых сред
- LoadBalancer — в облачных провайдерах (AWS ELB, GCP Load Balancer)
- Ingress Controller (Nginx, Traefik) — для HTTP/HTTPS трафика с маршрутизацией
4. Для production-доступа я настраиваю:
- VPN (WireGuard, OpenVPN) + внутренние LoadBalancer
- Bastion-хосты в облачных сетях (AWS VPC, GCP VPC)
- Teleport или kubectl proxy с RBAC и аутентификацией
Пример безопасного доступа через Teleport:
tsh kubectl exec -it pod-name -- /bin/bash
Ключевой принцип: минимальные привилегии (least privilege) через RBAC и аутентификацию сертификатами или OIDC.