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}]'
    ```

  • marcusd021
    marcusd021 Posts: 1
    edited June 19

    It worked for me, thanks a lot!
    Note that after executing the changes mentioned here, you have to sync argocd app (on GUI) to have it applied.

  • neildarylsulit
    neildarylsulit Posts: 1
    edited September 8

    The guide is still not updated

    I'm still encountering the same issue.

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

    I modified the deployment manifest from containerPort from 3000 to 80 and changed the targetPort of the K8s service from 3000 to 80 as well but still keeping the servicePort as 3000

    Here's my final source config: https://github.com/ndsulit/LFS256-code

Categories

Upcoming Training