Welcome to the Linux Foundation Forum!

Lab 3.2 port-forwarding to example app fails

ramrodo
ramrodo Posts: 3
edited June 2024 in LFS256 Class Forum

In Lab 3.2, at Step 4 trying to access the deployed application using the following command:

kubectl port-forward svc/argocd-example-app-service 9090:3000

and trying to access to http://localhost:9090/, it crashes after 1st or following attempts with the following message:

$ kubectl port-forward svc/argocd-example-app-service 9090:3000
Forwarding from 127.0.0.1:9090 -> 3000
Forwarding from [::1]:9090 -> 3000
Handling connection for 9090
E0604 19:10:22.343701  437481 portforward.go:409] an error occurred forwarding 9090 -> 3000: error forwarding port 3000 to pod 93f214d64df6a844543a6c6ddcbda3c327c799adecddbdb749d88d8ab4524f9c, uid : failed to execute portforward in network namespace "/var/run/netns/cni-82f4f592-8524-2180-8043-324a3e202f67": failed to connect to localhost:3000 inside namespace "93f214d64df6a844543a6c6ddcbda3c327c799adecddbdb749d88d8ab4524f9c", IPv4: dial tcp4 127.0.0.1:3000: connect: connection refused IPv6 dial tcp6 [::1]:3000: connect: connection refused 
error: lost connection to pod

This happens with a local kind cluster (kind v0.23.0) with k8s v1.29 using Manjaro Linux as OS.

From my experience with other similar cases, this happens when the container image (in this case liquidreply/argocd-example-app) is missing some configuration at the Dockerfile/Containerfile.

Comments

  • ramrodo
    ramrodo Posts: 3

    On the other hand, I used another guestbook application from github.com/argoproj/argocd-example-apps and the port-forward command works well without issues.

  • I'm experiencing the same. Did anyone figure out the root cause?

  • mabo
    mabo Posts: 1

    The container port ist not 3000, it is 80, see: https://github.com/lftraining/LFS256-code/pull/5/files

  • Thank you, mabo. I changed the forked repo, and it worked like a charm!

  • I'm also experiencing this, and wasted 30 minutes troubleshooting it. It's a pity that it is still not changed in the LAB Guide.

  • +1 I came across this! Thanks

    Using the forked repo will work - the owner should merge that.

    You can see it's port 80 like this

    % kubectl exec -it argocd-example-app-75d498548c-9z49t -- netstat -tuln
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State
    tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN
    tcp        0      0 :::80                   :::*                    LISTEN
    

    And you can patch it in-situ like this
    ``
    kubectl patch service argocd-example-app-service -n default --type='json' -p='[{"op": "replace", "path": "/spec/ports/0/targetPort", "value": 80}]'
    ```

Categories

Upcoming Training