DEV Community

Cover image for Kubernetes Port Forward Command: A Comprehensive Guide
Labby for LabEx

Posted on • Originally published at labex.io

1 1

Kubernetes Port Forward Command: A Comprehensive Guide

Introduction

In this lab, you will learn how to use the Kubernetes port-forward command to forward a local port to a port on a pod. You will start with simple examples and gradually progress to more complex scenarios.

Forwarding a Local Port to a Pod

In this step, you will learn how to forward a local port to a port on a pod.

  1. Start by creating a deployment with one replica and an Nginx container:
   kubectl create deployment nginx --image=nginx --replicas=1
Enter fullscreen mode Exit fullscreen mode
  1. Wait for the pod to become ready:
   kubectl wait --for=condition=Ready pod -l app=nginx
Enter fullscreen mode Exit fullscreen mode
  1. Use the kubectl port-forward command to forward a local port to the pod:
   kubectl port-forward < pod_name > 19000:80
Enter fullscreen mode Exit fullscreen mode

Replace <pod_name> with the name of the pod created in step 1, and you can get the <pod_name> with the kubectl get pod -l app=nginx command.

  1. Open a web browser and go to http://localhost:19000 to view the Nginx welcome page.

Forwarding Multiple Local Ports to a Pod

In this step, you will learn how to forward multiple local ports to a pod.

  1. Use the kubectl port-forward command to forward multiple local ports to the pod:
   kubectl port-forward 19443:443 < pod_name > 19080:80
Enter fullscreen mode Exit fullscreen mode

Replace <pod_name> with the name of the pod created in step 1, and you can get the <pod_name> with the kubectl get pod -l app=nginx command.

  1. Open another terminal and use the ss command at the Linux command line to see if ports 19080 and 19443 are on the host.

Forwarding a Local Port to a Pod with Multiple Containers

In this step, you will learn how to forward a local port to a specific container in a pod with multiple containers.

  1. Create a pod with two containers: Nginx and BusyBox:
   cat << EOF | kubectl apply -f -
   apiVersion: v1
   kind: Pod
   metadata:
     name: nginx-busybox
   spec:
     containers:
     - name: nginx
       image: nginx
     - name: busybox
       image: busybox
       command:
         - sleep
         - "3600"
   EOF
Enter fullscreen mode Exit fullscreen mode
  1. Wait for the pod to become ready:
   kubectl wait --for=condition=Ready pod nginx
Enter fullscreen mode Exit fullscreen mode
  1. Use the kubectl port-forward command to forward a local port to the Nginx container:
   kubectl port-forward nginx-busybox 19001:80
Enter fullscreen mode Exit fullscreen mode
  1. Open a web browser and go to http://localhost:19001 to view the Nginx welcome page.

Using Port-Forward with Kubernetes Services

In this step, you will learn how to use the kubectl port-forward command with Kubernetes services.

  1. Create a service for the Nginx deployment:
   kubectl expose deployment nginx --port=80 --type=ClusterIP
Enter fullscreen mode Exit fullscreen mode
  1. Use the kubectl port-forward command to forward a local port to the service:
   kubectl port-forward service/nginx 20000:80
Enter fullscreen mode Exit fullscreen mode
  1. Open a web browser and go to http://localhost:20000 to view the Nginx welcome page.

Summary

Congratulations, you have successfully completed the Kubernetes port-forward command lab! In this lab, you learned how to forward a local port to a pod, forward multiple local ports to a pod, forward a pod port to a local port, forward a local port to a specific container in a pod with multiple containers, and use the kubectl port-forward command with Kubernetes services. These skills are essential for debugging issues in a Kubernetes cluster.


Want to learn more?

Join our Discord or tweet us @WeAreLabEx ! 😄

Do your career a big favor. Join DEV. (The website you're on right now)

It takes one minute, it's free, and is worth it for your career.

Get started

Community matters

Top comments (1)

Collapse
 
der_gopher profile image
Alex Pliutau

Great write-up, we also have a bunch of articles on Kubernetes, check it out here - packagemain.tech

👋 Kindness is contagious

Explore a sea of insights with this enlightening post, highly esteemed within the nurturing DEV Community. Coders of all stripes are invited to participate and contribute to our shared knowledge.

Expressing gratitude with a simple "thank you" can make a big impact. Leave your thanks in the comments!

On DEV, exchanging ideas smooths our way and strengthens our community bonds. Found this useful? A quick note of thanks to the author can mean a lot.

Okay