Úvod
Kubectl port-forward umožňuje přístup a interakci s interními procesy clusteru Kubernetes z vašeho localhostu. Pomocí této metody můžete prozkoumat problémy a upravit své služby lokálně, aniž byste je museli předem odhalit.
Kubectl je hlavní nástroj příkazového řádku pro správu clusterů Kubernetes. Je nezbytný pro nasazování aplikací, správu klastrových zdrojů a budování komplexních rámců.
Tento stručný výukový program vám ukáže, jak použít kubectl k přesměrování na modul v clusteru Kubernetes.
Předpoklady
- Cluster Kubernetes
- Plně nakonfigurovanýkubectl nástroj příkazového řádku
Jak funguje předávání portů Kubernetes?
Přestože je Kubernetes vysoce automatizovaný orchestrační systém, proces přesměrování portů vyžaduje přímý a opakovaný uživatelský vstup. Připojení se ukončí, jakmile instance modulu selže, a je nutné vytvořit nové přesměrování ručním zadáním stejného příkazu.
Celý proces je zjednodušen tím, že kubectl již má vestavěnou funkci přesměrování portů.
- Uživatel komunikuje s Kubernetes pomocí kubectl příkazového řádku na jejich místním počítači.
port-forward
příkaz určuje název klastrového prostředku a definuje číslo portu, na který má být port přesměrován.- V důsledku toho server Kubernetes API vytvoří jediné připojení HTTP mezi vaším localhostem a prostředkem běžícím na vašem clusteru.
- Uživatel může nyní přímo zapojit konkrétní pod, buď za účelem diagnostiky problému, nebo ladění, je-li to nutné.
Přesměrování portů je metoda náročná na práci. V některých případech je to však jediný způsob přístupu k interním zdrojům klastru.
Základní příkazy kubectl port-forward
port-forward
příkaz vytvoří tunel z cílového modulu do vašeho localhost. Příkaz vyžaduje, abyste definovali typ nebo název zdroje a také čísla místních a vzdálených portů:
kubectl port-forward TYPE/NAME [options] LOCAL_PORT:REMOTE_PORT
Pokud kritériím typu/názvu odpovídá několik podů, ve výchozím nastavení se vybere náhodný. Abyste se vyhnuli takovým nesrovnalostem, definujte lusk co nejpřesněji. Přesný název podu můžete najít ručním uvedením podů v jmenném prostoru zadáním:
kubectl -n yournamespace get pods
Seznam obsahuje názvy podů v daném jmenném prostoru.
kubectl port-forward na konkrétní pod
Například následující příkaz vám umožní přístup k nasazení MongoDB v rámci vašeho clusteru. Název modulu je mongo-db-r3pl1ka3 a číslo portu je 5762:
kubectl port-forward pod/mongo-db-r3pl1ka3 8080:5762
Kubernetes API nyní naslouchá na místním portu 8080 a předává data na port 5762 na definovaném modulu.
Náhodný místní port
Poslouchejte lokálně na náhodném portu a přesměrujte na port 5762 v rámci zadaného modulu:
kubectl port-forward pod/mongo-db-r3pl1ka3 :5762
Odpovídající místní a vzdálený port
Poslouchejte a předávejte data pomocí identických portů (8080, 5762) lokálně i v rámci konkrétního modulu:
kubectl port-forward pod/mongo-db-r3pl1ka3 8080 5762
Náhodná místní IP adresa
Poslouchejte na portu 8080 na jakékoli místní adrese, přepošlete na port 5762 v zadaném modulu:
kubectl port-forward --address 0.0.0.0 pod/mongo-db-r3pl1ka3 8888:5762
Zadejte místní IP adresu pro přesměrování portů
Poslouchejte na portu 8080 na localhost pomocí definované IP adresy, předejte na port 5762 v modulu:
kubectl port-forward --address localhost,10.153.40.102 pod/mongo-db-r3pl1ka3 8080:5762
Pomocí Deployment vyberte modul pro předávání portů
Poslouchejte a předávejte data pomocí stejných portů (8080 5762) lokálně i v modulu. Nasazení definuje, který modul se má použít:
kubectl port-forward deployment/mydeployment 8080 5762
Povolit službě definovat modul pro předávání portů
Poslouchejte a předávejte data pomocí stejných portů (8080 5762) lokálně i v modulu. Služba vybere, který modul se má použít:
kubectl port-forward service/myservice 8080 5762