Why my environment is not suitable for istio ingress agteway?

9/10/2019

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

After installing the Istio (version - 1.2.5), the istio-ingress gateway external IP is in pending 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.

Kubernetes version - kubeadm version: &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
-- Ashjoker
docker
istio
kubernetes

1 Answer

9/10/2019

A LoadBalancer type Kubernetes Service requests that Kubernetes create a load balancer outside the cluster that routes traffic to some specific service. The documentation begins with

On cloud providers which support external load balancers...

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

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

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.

-- David Maze
Source: StackOverflow