<p>I am using kubespray to run a kubernetes cluster on my laptop. The cluster is running on 7 VMs and the roles of the VM's spread as follows: </p>

<pre><code>NAME    STATUS   ROLES    AGE     VERSION
k8s-1   Ready    master   2d22h   v1.16.2
k8s-2   Ready    master   2d22h   v1.16.2
k8s-3   Ready    master   2d22h   v1.16.2
k8s-4   Ready    master   2d22h   v1.16.2
k8s-5   Ready    &lt;none&gt;   2d22h   v1.16.2
k8s-6   Ready    &lt;none&gt;   2d22h   v1.16.2
k8s-7   Ready    &lt;none&gt;   2d22h   v1.16.2
</code></pre>

<p>I've installed <a href="https://istio.io/" rel="nofollow noreferrer">https://istio.io/</a> to build a microservices environment. </p>

<p>I have 2 services running and like to access from outside: </p>

<pre><code>k get services
NAME              TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
greeter-service   ClusterIP   10.233.50.109   &lt;none&gt;        3000/TCP   47h
helloweb          ClusterIP   10.233.8.207    &lt;none&gt;        3000/TCP   47h
</code></pre>

<p>and the running pods: </p>

<pre><code>NAMESPACE      NAME                                      READY   STATUS    RESTARTS   AGE     IP             NODE    NOMINATED NODE   READINESS GATES
default        greeter-service-v1-8d97f9bcd-2hf4x        2/2     Running   0          47h     10.233.69.7    k8s-6   &lt;none&gt;           &lt;none&gt;
default        greeter-service-v1-8d97f9bcd-gnsvp        2/2     Running   0          47h     10.233.65.3    k8s-2   &lt;none&gt;           &lt;none&gt;
default        greeter-service-v1-8d97f9bcd-lkt6p        2/2     Running   0          47h     10.233.68.9    k8s-7   &lt;none&gt;           &lt;none&gt;
default        helloweb-77c9476f6d-7f76v                 2/2     Running   0          47h     10.233.64.3    k8s-1   &lt;none&gt;           &lt;none&gt;
default        helloweb-77c9476f6d-pj494                 2/2     Running   0          47h     10.233.69.8    k8s-6   &lt;none&gt;           &lt;none&gt;
default        helloweb-77c9476f6d-tnqfb                 2/2     Running   0          47h     10.233.70.7    k8s-5   &lt;none&gt;           &lt;none&gt;
</code></pre>

<p>The problem is, I can not access the services from outside, because I do not have the <em>EXTERNAL IP</em> address(remember the cluster is running on my laptop). </p>

<pre><code>k get svc istio-ingressgateway -n istio-system  
NAME                   TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)                                                                                                                      AGE
istio-ingressgateway   LoadBalancer   10.233.61.112   &lt;pending&gt;     15020:31311/TCP,80:30383/TCP,443:31494/TCP,15029:31383/TCP,15030:30784/TCP,15031:30322/TCP,15032:30823/TCP,15443:30401/TCP   47h
</code></pre>

<p>As you can see, the column <strong>EXTERNAL-IP</strong> the value is <code>&lt;pending&gt;</code>. </p>

<p>The question is, how to assign an <strong>EXTERNAL-IP</strong> to the <code>istio-ingressgateway</code>.</p>

softshipper
<p>First of all, you can't make k8s to assign you an external IP address, as <code>LoadBalancer</code> service is Cloud Provider specific. You could push your router external IP address to be mapped to it, I guess, but it is not trivial.</p>
<p>To reach the service, you can do this:</p>
<ol>
<li><code>kubectl edit svc istio-ingressgateway -n istio-system</code></li>
<li>Change the type of the service from <code>LoadBalancer</code> to <code>ClusterIp</code>. You can also do <code>NodePort</code>. Actually you can skip this step, as <code>LoadBalancer</code> service already contains <code>NodePort</code> and <code>ClusterIp</code>. It is just to get rid of that <strong>pending</strong> status.</li>
<li><code>kubectl port-forward svc/istio-ingressgateway YOUR_LAPTOP_PORT:INGRESS_CLUSTER_IP_PORT -n istio-system</code></li>
</ol>
<p>I don't know to which port you want to access from your localhost. Say 8080, you can do:</p>
<p><code>kubectl port-forward svc/istio-ingressgateway 8080:80 -n istio-system</code></p>
<p>Now port 8080 of your laptop (localhost:8080) will be mapped to the port 80 of <code>istio-ingressgateway</code> service.</p>
