<p>I am trying to deploy a <code>jupyter notebook</code> from Kubernetes; however, when I start <code>jupyter</code> and it prints a local host link, I am unable to open it on my computer because it's a "local host." Hence, it needs to be opened within the container. </p>

<p>However, I was unable to find any type of GUI desktop for kubernetes and I'm unsure how to open a browser to fire up the link. I saw some things about minikube. Is there a way to do this without using minikube?</p>

<p>The reason I am trying to install without minikube is because minikube requires hyper V and I have Windows 10 Home which is not compatible with hyper V. </p>

<p>The most common way to access an application in a pod is to use Service. </p>

<p>After creation, a Service object is assigned with a unique IP address (ClusterIP) which remains the same during the whole lifespan of the Service object. Pods can use this ClusterIP and port to access a subset of pods with labels matched to Service selector. When several pods are matched, Service chooses one of them as a destination by round-robin principle.   </p>

<p>For example: </p>

<p>You can create a Service for your 2 nginx replicas with kubectl expose: </p>

<pre><code>$ kubectl expose deployment/my-nginx 
service "my-nginx" exposed 
</code></pre>

<p>This is equivalent to <code>kubectl create -f nginx-svc.yaml</code></p>

<p>with nginx-svc.yaml content as: </p>

<pre><code>apiVersion: v1 
kind: Service 
metadata: 
 name: my-nginx 
 labels: 
   run: my-nginx 
spec: 
 ports: 
 - port: 80 
   protocol: TCP 
 selector: 
   run: my-nginx 
</code></pre>

<p>How to check your Service: </p>

<pre><code>$ kubectl get svc my-nginx 
NAME       CLUSTER-IP    EXTERNAL-IP PORT(S)   AGE 
my-nginx   10.0.162.149   &lt;none&gt; 80/TCP    21s  
</code></pre>

<p>In some parts of your applications, you may want to expose Service onto an external IP address. Kubernetes supports two ways of doing this: NodePorts and LoadBalancers. <br>
NodePort mode reserves one port on all cluster nodes and forwards traffic coming to this port to the pod which is matched to the selector. <br>
In LoadBalancer mode, Service creates cloud load balancer and forwards traffic from the load balancer to the pod which is matched to the selector. <br>
You can read more about it in the document <a href="https://kubernetes.io/docs/concepts/services-networking/connect-applications-service/" rel="nofollow noreferrer">Connecting Applications with Services</a> </p>

<p>To avoid creating all these objects manually, you can use helm to generate and run objects based on a template for a particular application. Here is helm repository for jupiter notebook: </p>

<p><a href="https://github.com/UNINETT/helm-charts" rel="nofollow noreferrer">https://github.com/UNINETT/helm-charts</a> </p>

<p>Kubernetes has WebUI called Dashboard. It doesn´t deploy by default, but it´s easy to deploy when you need it. </p>

<p>To deploy Dashboard, execute the following command: </p>

<pre><code>$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml 
</code></pre>

<p>To access Dashboard from your local workstation, you must create a secure channel to your Kubernetes cluster. Run the following command: </p>

<pre><code>$ kubectl proxy 
</code></pre>

<p>Now access Dashboard at: </p>

<p><a href="http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/" rel="nofollow noreferrer">http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/</a>. </p>

<p>To find out how to create sample user and log in, follow Creating <a href="https://github.com/kubernetes/dashboard/wiki/Creating-sample-user" rel="nofollow noreferrer">sample user guide</a>. </p>

<p>Since version 1.7 Dashboard by default has a minimal set of privileges and can only be accessed over HTTPS. <a href="https://github.com/kubernetes/dashboard/wiki/Access-control" rel="nofollow noreferrer">Access Control guide</a> can help you to extend user permissions. </p>

<p>In case you are limited with OS version, you can use free <a href="https://rominirani.com/tutorial-getting-started-with-kubernetes-on-your-windows-laptop-with-minikube-3269b54a226" rel="nofollow noreferrer">Oracle VirtualBox for minikube</a>.</p>
