<p><a href="http://grs-preprodkubemaster01:5601/kibana" rel="nofollow noreferrer">http://grs-preprodkubemaster01:5601/kibana</a></p>

<p>I have followed docs and installed Kibana, When I used the service as type: LoadBalancer, the service isn't 
coming up, so I deleted the type: LoadBalancer and let it default to ClusterIP, it came up fine. (Note I don't have AWS)
But, I am not sure how to access the UI, I tried this URL but its not working.
<a href="http://my-preprodkubemaster01/api/v1/proxy/namespaces/kube-system/services/elasticsearch-logging/app/kibana" rel="nofollow noreferrer">http://my-preprodkubemaster01/api/v1/proxy/namespaces/kube-system/services/elasticsearch-logging/app/kibana</a>
any ideas how to access the Kibana UI. I checked service, deployment and everything is green check.</p>

<p>Another thing I tried is this URL with this URL which I got from the command kubectl cluster-info
<a href="https://10.123.24.107:6443/api/v1/namespaces/kube-system/services/kibana-logging/proxy" rel="nofollow noreferrer">https://10.123.24.107:6443/api/v1/namespaces/kube-system/services/kibana-logging/proxy</a>
However, this is showing me  this error</p>

<pre><code>{
kind: "Status",
apiVersion: "v1",
metadata: { },
status: "Failure",
message: "services "kibana-logging" is forbidden: User "system:anonymous" cannot get services/proxy in the namespace "kube-system"",
reason: "Forbidden",
details: {
name: "kibana-logging",
kind: "services"
},
code: 403
}
</code></pre>

<p>So, as another try I used Kibana service as NodePort, but that didn't work either.</p>

<pre><code>apiVersion: v1
kind: Service
metadata:
  name: kibana-logging
  namespace: kube-system
  labels:
    k8s-app: kibana-logging
    kubernetes.io/cluster-service: "true"
    addonmanager.kubernetes.io/mode: Reconcile
    kubernetes.io/name: "Kibana"
spec:
  selector:
    k8s-app: kibana-logging
  type: NodePort
  ports:
  - port: 5601
    protocol: TCP
    targetPort: ui
    nodePort: 30887

$  kubectl -n kube-system get rc,svc,cm,po
NAME                        TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
svc/elasticsearch-logging   ClusterIP   10.98.10.182     &lt;none&gt;        9200/TCP         12m
svc/heapster                ClusterIP   10.107.184.85    &lt;none&gt;        80/TCP           3d
svc/kibana-logging          NodePort    10.102.254.129   &lt;none&gt;        5601:30887/TCP   12m
svc/kube-dns                ClusterIP   10.96.0.10       &lt;none&gt;        53/UDP,53/TCP    3d
svc/kubernetes-dashboard    ClusterIP   10.105.30.246    &lt;none&gt;        80/TCP           3d
svc/monitoring-influxdb     ClusterIP   10.109.144.39    &lt;none&gt;        8086/TCP         3d
</code></pre>

<p>I would like to know what URL I should be using to access the Kibana UI. Please note that I have npot tried to do kubectl proxy and I would like to have it work without it</p>

sbolla
<p>I got it to work with these changes in ingress config</p>

<pre><code>    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
     name: kube
  namespace: kube-system
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.org/rewrites: "serviceName=kubernetes-dashboard rewrite=/;serviceName=kibana-logging rewrite=/"
spec:
  rules:
  - host: HOSTNAME_OF_MASTER
    http:
      paths:
      - path: /kube-ui/
        backend:
          serviceName: kubernetes-dashboard
          servicePort: 80
      - path: /kibana/
        backend:
          serviceName: kibana-logging
          servicePort: 5601
</code></pre>

<p>and my Kibana serive is setup as Nodeport</p>

<pre><code>apiVersion: v1
kind: Service
metadata:
  name: kibana-logging
  namespace: kube-system
  labels:
    k8s-app: kibana-logging
    kubernetes.io/cluster-service: "true"
    addonmanager.kubernetes.io/mode: Reconcile
    kubernetes.io/name: "Kibana"
spec:
  type: NodePort
  ports:
  - port: 5601
    protocol: TCP
    targetPort: ui
  selector:
    k8s-app: kibana-logging
</code></pre>

<p>and dashboard is also configured as this</p>

<pre><code># ------------------- Dashboard Service ------------------- #
kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kube-system
spec:
  type: NodePort
  ports:
    - port: 80
      targetPort: 9090
  selector:
    k8s-app: kubernetes-dashboard
</code></pre>

<p>once you have the svc running you can access kibana using the NodePort from any node. Example: <a href="http://node01_ip" rel="nofollow noreferrer">http://node01_ip</a>: 31325/app/kibana</p>

<pre><code>$ kubectl get svc -o wide -n=kube-system
NAME                    TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE       SELECTOR
elasticsearch-logging   ClusterIP   10.xx.120.130   &lt;none&gt;        9200/TCP         11h       k8s-app=elasticsearch-logging
heapster                ClusterIP   10.xx.232.165   &lt;none&gt;        80/TCP           11h       k8s-app=heapster
kibana-logging          NodePort    10.xx.39.255    &lt;none&gt;        5601:31325/TCP   11h       k8s-app=kibana-logging
kube-dns                ClusterIP   10.xx.0.xx       &lt;none&gt;        53/UDP,53/TCP    12h       k8s-app=kube-dns
kubernetes-dashboard    NodePort    10.xx.xx.xx   &lt;none&gt;        80:32086/TCP     11h       k8s-app=kubernetes-dashboard
monitoring-influxdb     ClusterIP   10.13.199.138   &lt;none&gt;        8086/TCP         11h       k8s-app=influxdb
</code></pre>
