<p>I try to deploy Istio in kubernetes cluster which is running in my virtual box. I am using <strong>one master</strong> and <strong>two minions</strong> (All VB machines has bridge adapter).</p>

<p>After installing the Istio (version - 1.2.5), the istio-ingress gateway external IP is in <strong>pending</strong> state. I know we can use node port for this problem, but i want to know why my environment not support that LB external IP.</p>

<pre><code>Kubernetes version - kubeadm version: &amp;version.Info
{
  Major:"1", 
  Minor:"15", 
  GitVersion:"v1.15.3", 
  GitCommit:"2d3c76f9091b6bec110a5e63777c332469e0cba2", 
  GitTreeState:"clean", 
  BuildDate:"2019-08-19T11:11:18Z", 
  GoVersion:"go1.12.9", 
  Compiler:"gc", 
  Platform:"linux/amd64"
}

Docker version - Docker version 19.03.2, build 6a30dfc

OS Platform - CentOS - 7
</code></pre>

Ashjoker
<p>A LoadBalancer type Kubernetes Service requests that Kubernetes create a load balancer outside the cluster that routes traffic to some specific service.  <a href="https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer" rel="nofollow noreferrer">The documentation</a> begins with</p>

<blockquote>
  <p>On cloud providers which support external load balancers...</p>
</blockquote>

<p>On AWS, for example, Kubernetes can use the AWS APIs to request an Amazon Elastic Load Balancer.</p>

<p>You're not in one of these environments.  The nearest equivalent for you would be running an <code>haproxy</code> instance on your host, outside any of the VMs, and your Kubernetes simply isn't able to do that.</p>

<p>You can use a NodePort type service to access your cluster, since you can directly make calls to the VMs.  LoadBalancer services are NodePort services so you can experiment without changing anything.</p>
