<p>Environment information:</p>
<pre><code>Computer detail: One master node and four slave nodes. All are CentOS Linux release 7.8.2003 (Core).
Kubernetes version: v1.18.0.
Zero to JupyterHub version: 0.9.0.
Helm version: v2.11.0
</code></pre>
<p>Recently, I try to deploy &quot;Zero to Jupyterhub&quot; on kubernetes. My jupyterhub config file such below:</p>
<p><code>config.yaml</code></p>
<pre><code>proxy:
  secretToken: &quot;2fdeb3679d666277bdb1c93102a08f5b894774ba796e60af7957cb5677f40706&quot;
  service:
    type: NodePort
    nodePorts:
      http: 30080
      https: 30443
singleuser:
  storage:
    dynamic:
      storageClass: local-storage
    capacity: 10Gi
</code></pre>
<p><strong>Note:</strong> I set the service type as <code>NodePort</code>, because I not have any cloud provider(deploy on my lab servers cluster), and I try using <code>nginx-ingress</code> also then got failure, that reason why I do not using <code>LoadBalance</code>.</p>
<p>But when I using this config file to install jupyterhub via <code>Helm</code>, I can not access jupyterhub from browser, even all <code>Pods</code> running. These pods detail like below:</p>
<p><code>kubectl get pod --namespace jhub</code></p>
<pre><code>NAME                              READY   STATUS    RESTARTS   AGE
continuous-image-puller-8gxxk     1/1     Running   0          27m
continuous-image-puller-8tmdh     1/1     Running   0          27m
continuous-image-puller-lwdcx     1/1     Running   0          27m
continuous-image-puller-pszsr     1/1     Running   0          27m
hub-7b9cbbcf59-fbppq              1/1     Running   0          27m
proxy-6b699b54c8-2pxmb            1/1     Running   0          27m
user-scheduler-65f4cbb9b7-9vmfr   1/1     Running   0          27m
user-scheduler-65f4cbb9b7-lqfrh   1/1     Running   0          27m
</code></pre>
<p>and its services like this:</p>
<p><code>kubectl get service --namespace jhub</code></p>
<pre><code>NAME           TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)                      AGE
hub            ClusterIP   10.10.55.78    &lt;none&gt;        8081/TCP                     28m
proxy-api      ClusterIP   10.10.27.133   &lt;none&gt;        8001/TCP                     28m
proxy-public   NodePort    10.10.97.11    &lt;none&gt;        443:30443/TCP,80:30080/TCP   28m
</code></pre>
<p>Is seem to work well, right? (I guessed.) But the fact is that I can not use ip <code>10.10.97.11</code> to access the jupyter main page, and I did not get any external ip also.</p>
<p>So, my problems are:</p>
<ol>
<li>Do my config have any wrong?</li>
<li>How to get an external ip?</li>
</ol>
<p>Finally, thank you for save my day so much!</p>

<p>For <code>NodePort</code> service you will not get <code>EXTERNAL-IP</code>. You can not use the <code>CLUSTER-IP</code> to access it from outside the kubernetes cluster because <code>CLUSTER-IP</code> is for accessing it from inside the kubernetes cluster typically from another pod.For accessing from outside the kubernetes cluster you need to use <code>NodeIP:NodePort</code> where <code>NodeIP</code> is your kubernetes nodes IP address.</p>
