skaffold
skaffold copied to clipboard
Quickstart: demo app not reachable through localhost
Hello!
I've just been going through the quickstart for Skaffold and had difficulty reaching my example app from my browser at http://localhost:3000 as the docs describe. However, I did have success reaching the app by using the external IP as output by kubectl get svc for the LoadBalancer service.
I tried this on two separate laptops as noted in the information section below, a macbook and a Ubuntu machine. So I'm wondering, do I have something misconfigured that would allow localhost to work as described, or would it actually be expected that you need to use the external IP for the LoadBalancer service?
Expected behavior
After following the steps outlined in the quickstart through this section:
To browse to the web page, open a new terminal and run:
minikube tunnel -p custom
Now open your browser at http://localhost:3000. This displays the content of public/index.html file.
Navigating to http://localhost:3000 displays "Hello World." In the browser.
Actual behavior
Instead, the browser is unable to connect, but navigating to an external IP as output from kubectl get svc successfully loads the page.
I.e.:
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 2m39s
web LoadBalancer 10.107.176.91 10.107.176.91 3000:32452/TCP 58s
means 10.107.176.91:3000 will succeed.
Information
- Skaffold version: 2.3.0
- Operating system: macOS Big Sur 11.3.1 & Ubuntu 22.04
- Installed via: skaffold.dev
- Contents of skaffold.yaml:
apiVersion: skaffold/v4beta4
kind: Config
metadata:
name: buildpacks-node-tutorial
build:
artifacts:
- image: skaffold-buildpacks-node
buildpacks:
builder: gcr.io/buildpacks/builder:v1
manifests:
rawYaml:
- k8s/web.yaml
Steps to reproduce the behavior
git clone https://github.com/GoogleContainerTools/skaffold- cd skaffold/examples/buildpacks-node-tutorial
skaffold init- Choose the builder to build image skaffold-buildpacks-node Buildpacks (package.json)
minikube start --profile customskaffold config set --global local-cluster trueeval $(minikube -p custom docker-env)skaffold dev- This output appears: Example app listening on port 3000!
minikube tunnel -p custom- Unable to connect to
http://localhost:3000
Hitting this exact same thing, except I can't hit the url at all, either localhost or the one in the LoadBalancer.
torial]$ kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
common ClusterIP None <none> <none> 41m
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 69m
node LoadBalancer 10.109.53.130 10.109.53.130 3000:31504/TCP 36m
web LoadBalancer 10.104.35.139 10.104.35.139 3000:31110/TCP 21m
AH! I got this working by adding --port-forward to skaffold dev:
skaffold dev --port-forward
Now I see http://localhost:3000
Maybe that should be in the Quickstart page?