<p>I'm trying to get an openzipkin server running in a k8s cluster, starting with testing in a minikube. I'm beginner with k8s config, but here's what I've done so far:</p>

<pre><code>$ minikube start
$ eval $(minikube docker-env)
$ kubectl run zipkin --image=openzipkin/zipkin --port=9411
$ kubectl expose deployment zipkin --port=9411 --type="NodePort" --name=zipkin-http
</code></pre>

<p>What I think I'm doing is starting a new pod and deploying the zipkin image, then exposing the Web UI at port 9411 via zipkin-http. After doing this:</p>

<pre><code>$ kubectl run -i --tty busybox --image=busybox -- sh
$ nslookup zipkin-http
Server:    10.0.0.10
Address 1: 10.0.0.10

Name:      zipkin-http
Address 1: 10.0.0.101
$ wget -qO- zipkin-http:9411
&lt;!DOCTYPE html&gt;
...
$ wget -qO- zipkin-http:9411/config.json
{"environment":"","queryLimit":10,"defaultLookback":3600000,"instrumented":".*"}
</code></pre>

<p>Then I run the kubectl proxy so I can access the Web UI from my browser:</p>

<pre><code>$ kubectl proxy --accept-hosts=".*"
</code></pre>

<p>Now if I browse to <a href="http://localhost:8001/api/v1/proxy/namespaces/default/services/zipkin-http/config.json" rel="nofollow">http://localhost:8001/api/v1/proxy/namespaces/default/services/zipkin-http/config.json</a> I get the config file contents:</p>

<pre><code>{"environment":"","queryLimit":10,"defaultLookback":3600000,"instrumented":".*"}
</code></pre>

<p>But if I browse to the root at <a href="http://localhost:8001/api/v1/proxy/namespaces/default/services/zipkin-http/" rel="nofollow">http://localhost:8001/api/v1/proxy/namespaces/default/services/zipkin-http/</a> I receive an error:</p>

<pre><code>Error loading config.json: undefined
</code></pre>

<p>The config.json it's attempting to load is the one at :9411/config.json. The request to load /config.json comes from a JS file that was loaded by the html in the root page.</p>

<p>Since it looks like I can get to the json file directly from both inside and outside the cluster, I'm confused as to why the JS file isn't able to load it. What am I doing wrong here?</p>

<p>Thanks!</p>

<p>The web app is trying to access <code>config.json</code> at root (accessing as <code>/config.json</code> vs just <code>config.json</code> ) - that is <a href="http://localhost:8001/config.json" rel="nofollow">http://localhost:8001/config.json</a> . This would obviously be wrong as it should be <a href="http://localhost:8001/api/v1/proxy/namespaces/default/services/zipkin-http/config.json" rel="nofollow">http://localhost:8001/api/v1/proxy/namespaces/default/services/zipkin-http/config.json</a> </p>

<p>There is a very simple solution for this - just run:</p>

<pre><code>kubectl port-forward &lt;name of the pod&gt; 9411
</code></pre>

<p>Now just go to <a href="http://localhost:9411" rel="nofollow">http://localhost:9411</a> and the UI should be up (tried and verified.)</p>

<p>You can get the name of the pod by doing <code>kubectl get pods</code></p>

<p>PS: <code>kubectl proxy</code> is generally meant to access the Kubernetes API, and <code>kube port-forward</code> is the right tool in this case. </p>
