Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error : ip is not found while trying to open linkerd admin dasboard #78

Closed
andela-ooladayo opened this issue Jan 25, 2017 · 6 comments · Fixed by #86
Closed

Error : ip is not found while trying to open linkerd admin dasboard #78

andela-ooladayo opened this issue Jan 25, 2017 · 6 comments · Fixed by #86
Assignees

Comments

@andela-ooladayo
Copy link

andela-ooladayo commented Jan 25, 2017

I got the error below while trying to open admin dashboard according to the instruction on the doc(linkerd-examples/k8s-daemonset)

error: error executing jsonpath "{.status.loadBalancer.ingress[0].ip}": ip is not found -bash: open: command not found

When I check the content of the JSON using:
kubectl get svc l5d --output=json
I discovered that ip has been changed to hostname from kubernetes 1.5.0.

@wmorgan
Copy link
Member

wmorgan commented Jan 25, 2017

@andela-ooladayo what version of Kubernetes are you running?

@andela-ooladayo
Copy link
Author

@wmorgan 1.5.0

@klingerf klingerf self-assigned this Feb 2, 2017
@klingerf
Copy link
Member

klingerf commented Feb 2, 2017

Hey @andela-ooladayo, thanks for reporting this. I tried out the k8s configs from this repo on Kubernetes 1.5.2, and the apps loaded successfully for me. Here's what I think is going on:

error: error executing jsonpath "{.status.loadBalancer.ingress[0].ip}": ip is not found

When setting up a Kubernetes service that creates a load balancer, the service is created immediately, but the load balancer is created asynchronously. I've seen it take as long as 5 minutes to acquire an external IP after the service is created. So I think it's possible that the service didn't have an external IP yet when you ran this command, which caused it to fail. We should include a note in the documentation that explains that there might be some delay before the external IP is available.

bash: open: command not found

The open command is only available on macOS, and my guess is that you're not running on that OS. We should also update the documentation to make this clearer.

I'll leave this issue open to track updating the documentation. In the meantime, would you mind redeploying to your Kubernetes 1.5 setup, to see if the service picks up an external IP eventually?

@andela-ooladayo
Copy link
Author

andela-ooladayo commented Feb 7, 2017

I understand the part where load balancer is not ready, the error will be different in that case.
Solution:
When I ran kubectl get svc l5d --output=json I got

...
"status": {
        "loadBalancer": {
            "ingress": [
                {
                    "hostname": "xxxxxxxxxxxxx.us-east-1.elb.amazonaws.com"
                }
            ]
        }
    }

Which means the ip have been changed to hostname, so
open http://$(kubectl get svc l5d -o jsonpath="{.status.loadBalancer.ingress[0].hostname}"):9990 works

@klingerf
Copy link
Member

klingerf commented Feb 7, 2017

@andela-ooladayo Nice find! I was doing my testing on GCE, which sets ip but not hostname. And it looks like AWS load balancers set hostname but not ip, based on this documentation:

https://kubernetes.io/docs/api-reference/v1/definitions/#_v1_loadbalanceringress

Good catch. I'll update our docs to reference that when determining the external ip.

@klingerf
Copy link
Member

klingerf commented Feb 8, 2017

For my own reference, it looks like we can update the documentation to:

open http://$(kubectl get svc l5d -o jsonpath="{.status.loadBalancer.ingress[0].*}"):9990

And I think that should work on both platforms.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants