La commande port-forward permet de transférer un (ou plusieurs) port local vers un pod.
Cette commande est très utile, par exemple dans les déploiements bleus/verts, lorsque vous souhaitez dépanner un pod qui se comporte mal.
Pour aller encore plus loin, vous pouvez même exécuter des tests préliminaires sur les pods qui vous semblent les plus sujets aux erreurs directement dans votre pipeline CI/CD dans Jenkins en utilisant des conditions multiples et un pipeline déclaratif.
Exemples d'utilisation :
Ecoute sur le port 8888 localement, transfert vers 5000 dans le pod.
kubectl port-forward pod/mypod 8888:5000
Ecoute sur le port 8888 sur toutes les adresses, transfert vers 5000 dans le pod.
kubectl port-forward --address 0.0.0.0 pod/mypod 8888:5000
Ecoute sur un port aléatoire localement, transfert vers 5000 dans le pod.
kubectl port-forward pod/mypod :5000
Ecoute sur le port 8888 sur localhost et l'IP sélectionnée, transfert vers 5000 dans le pod.
kubectl port-forward --address localhost,10.19.21.23 pod/mypod 8888:5000
Écouter les ports 5000 et 6000 localement, en transférant les données vers/depuis les ports 5000 et 6000 dans le pod.
kubectl port-forward pod/mypod 5000 6000
Écouter les ports 5000 et 6000 localement, en transférant les données vers/depuis les ports 5000 et 6000 dans un pod sélectionné par le déploiement.
kubectl port-forward deployment/mydeployment 5000 6000
Écouter les ports 5000 et 6000 localement, en transférant les données vers/depuis les ports 5000 et 6000 dans un pod sélectionné par le service.
kubectl port-forward service/myservice 5000 6000
3 votes
Avez-vous lu sur prefetch.net/blog/2018/02/03/ déjà ?
2 votes
C'est un appel via le serveur API. Ce n'est pas un moyen général d'éviter d'avoir besoin d'un service. Ce n'est ni rapide ni, d'après mon expérience, particulièrement fiable, mais c'est utile pour le débogage.
0 votes
@MichaelHausenblas non, je viens juste de le voir... maintenant j'ai une nouvelle question, comment socat port-forwarder fait le port forwarding ?
1 votes
@DavidMaze est-il possible pour vous de développer ?
1 votes
@karthikeayan a trouvé un autre lien utile docs.giantswarm.io/guides/accessing-services-from-the-outside/ le trafic réel passe par le serveur d'API Ex. api.CLUSTER_ID.k8s.gigantic.io/api/v1/proxy/namespaces/