Bird
Raised Fist0
Kubernetesdevops~15 mins

kubectl port-forward for local access in Kubernetes - Mini Project: Build & Apply

Choose your learning style10 modes available
Using kubectl port-forward for Local Access
📖 Scenario: You have a Kubernetes cluster running a web application inside a pod. You want to access this application from your local computer without exposing it publicly.
🎯 Goal: Learn how to use kubectl port-forward to connect your local machine to a pod's port inside the Kubernetes cluster.
📋 What You'll Learn
A running Kubernetes cluster with a pod named exactly webapp-pod
The pod webapp-pod must have a container listening on port 8080
kubectl installed and configured to access the cluster
💡 Why This Matters
🌍 Real World
Port forwarding is useful when you want to securely access an application running inside a Kubernetes cluster without exposing it publicly. It helps developers test and debug applications locally.
💼 Career
Understanding port forwarding is important for Kubernetes administrators and developers to troubleshoot and access cluster resources safely during development and maintenance.
Progress0 / 4 steps
1
Identify the pod to forward ports
Use kubectl get pods to list all pods and confirm the pod named webapp-pod is running.
Kubernetes
Hint

This command shows all pods in the current namespace. Look for webapp-pod in the list.

2
Set the local port number for forwarding
Create a shell variable called LOCAL_PORT and set it to 9090 to use as the local port for forwarding.
Kubernetes
Hint

Use LOCAL_PORT=9090 to assign the port number.

3
Run kubectl port-forward command
Use kubectl port-forward to forward local port $LOCAL_PORT to port 8080 on the pod named webapp-pod. Use the syntax: kubectl port-forward pod/webapp-pod $LOCAL_PORT:8080
Kubernetes
Hint

This command connects your local port 9090 to the pod's port 8080.

4
Verify local access to the application
Open a new terminal or tab and run curl http://localhost:$LOCAL_PORT to check if the application is reachable locally through the forwarded port.
Kubernetes
Hint

This command sends a request to your local port 9090, which is forwarded to the pod.

Practice

(1/5)
1. What is the main purpose of kubectl port-forward in Kubernetes?
easy
A. To connect your local machine to a pod or service port inside the cluster
B. To expose a pod to the internet permanently
C. To create a new Kubernetes service
D. To delete a pod from the cluster

Solution

  1. Step 1: Understand the function of port-forward

    kubectl port-forward creates a temporary tunnel from your local machine to a pod or service port inside the Kubernetes cluster.
  2. Step 2: Compare other options

    Exposing pods permanently or creating/deleting resources are different commands and purposes.
  3. Final Answer:

    To connect your local machine to a pod or service port inside the cluster -> Option A
  4. Quick Check:

    Port-forward = local to pod/service connection [OK]
Hint: Port-forward = local access to pod/service port [OK]
Common Mistakes:
  • Thinking port-forward exposes pods publicly
  • Confusing port-forward with service creation
  • Assuming it deletes pods
2. Which of the following is the correct syntax to forward local port 8080 to port 80 of a pod named my-pod?
easy
A. kubectl port-forward my-pod 80:8080
B. kubectl port-forward pod/my-pod 80:8080
C. kubectl port-forward my-pod 8080
D. kubectl port-forward pod/my-pod 8080:80

Solution

  1. Step 1: Understand port-forward syntax

    The syntax is kubectl port-forward [resource-type/resource-name] localPort:remotePort. So to forward local 8080 to pod port 80, use 8080:80.
  2. Step 2: Identify correct resource format

    Pod resource must be specified as pod/my-pod for clarity and correctness.
  3. Final Answer:

    kubectl port-forward pod/my-pod 8080:80 -> Option D
  4. Quick Check:

    Syntax = kubectl port-forward pod/name localPort:remotePort [OK]
Hint: Use pod/name and localPort:remotePort format [OK]
Common Mistakes:
  • Reversing port numbers (remote:local instead of local:remote)
  • Omitting 'pod/' prefix
  • Swapping ports in the command
3. Given the command kubectl port-forward svc/my-service 9090:80, what will happen when you open http://localhost:9090 in your browser?
medium
A. You will access the pod's port 9090 directly
B. You will access the service's port 80 through local port 9090
C. You will get a connection refused error
D. The command will fail because services cannot be port-forwarded

Solution

  1. Step 1: Understand port-forward to service

    The command forwards local port 9090 to port 80 of the service my-service. So accessing localhost:9090 connects to service port 80.
  2. Step 2: Confirm service port-forward support

    Kubectl supports port-forwarding to services, so the command works and forwards traffic correctly.
  3. Final Answer:

    You will access the service's port 80 through local port 9090 -> Option B
  4. Quick Check:

    Port-forward svc port works = access via local port [OK]
Hint: Local port maps to service port, access via localhost:localPort [OK]
Common Mistakes:
  • Thinking services cannot be port-forwarded
  • Confusing local and remote ports
  • Expecting pod port 9090 instead of service port 80
4. You run kubectl port-forward pod/my-pod 8080:80 but get the error: error: unable to forward port because pod is not running. What is the most likely cause?
medium
A. The pod my-pod is not in Running state
B. You used the wrong port numbers
C. Port-forward does not work with pods
D. You need to specify the namespace explicitly

Solution

  1. Step 1: Analyze error message

    The error says the pod is not running, so port-forward cannot connect to it.
  2. Step 2: Check pod state requirement

    Port-forward requires the pod to be in Running state to forward ports successfully.
  3. Final Answer:

    The pod my-pod is not in Running state -> Option A
  4. Quick Check:

    Pod must be Running for port-forward [OK]
Hint: Pod must be Running to port-forward [OK]
Common Mistakes:
  • Assuming port numbers cause this error
  • Thinking port-forward doesn't work with pods
  • Ignoring pod status before port-forward
5. You want to access two different pods pod-a and pod-b running on ports 8080 and 9090 respectively, on your local machine at ports 3000 and 4000 simultaneously. Which commands should you run?
hard
A. kubectl port-forward pod/pod-a 3000:8080; kubectl port-forward pod/pod-b 4000:9090
B. kubectl port-forward pod/pod-a 8080:3000 & kubectl port-forward pod/pod-b 9090:4000
C. kubectl port-forward pod/pod-a 3000:8080 & kubectl port-forward pod/pod-b 4000:9090
D. kubectl port-forward pod/pod-a 3000:8080 pod/pod-b 4000:9090

Solution

  1. Step 1: Understand port-forward syntax and concurrency

    Each port-forward command forwards one pod port to a local port. To run two simultaneously, run two commands in parallel using & or separate terminals.
  2. Step 2: Verify port mappings

    Local port 3000 maps to pod-a's 8080, and local 4000 maps to pod-b's 9090. The syntax is localPort:remotePort.
  3. Step 3: Check command correctness

    kubectl port-forward pod/pod-a 3000:8080 & kubectl port-forward pod/pod-b 4000:9090 correctly runs two commands in background with correct port mappings. kubectl port-forward pod/pod-a 3000:8080; kubectl port-forward pod/pod-b 4000:9090 runs sequentially, blocking second command.
  4. Final Answer:

    kubectl port-forward pod/pod-a 3000:8080 & kubectl port-forward pod/pod-b 4000:9090 -> Option C
  5. Quick Check:

    Run two port-forwards in parallel with correct local:remote ports [OK]
Hint: Run separate port-forward commands in background for multiple pods [OK]
Common Mistakes:
  • Swapping local and remote ports
  • Trying to port-forward multiple pods in one command
  • Running commands sequentially blocking second port-forward
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard