<p>Hello I'm new to Istio and currently learning about Istio.</p>

<p>As per my understanding, Envoy proxy will resolve an IP address of destination instead of Kube DNS server. Envoy will send traffic directly to healthy pod based on information which received from control pane.</p>

<p>So... Does <a href="https://kubernetes.io/docs/concepts/services-networking/service/" rel="nofollow noreferrer">Kubernetes service</a> required to setup, if I'm using Istio?</p>

<p>Correct me if I'm wrong.</p>

<p>Thanks!</p>

korrawit
<p>From the <a href="https://istio.io/docs/concepts/traffic-management/" rel="nofollow noreferrer">docs</a></p>

<blockquote>
  <p>In order to direct traffic within your mesh, Istio needs to know where
  all your endpoints are, and which services they belong to. To populate
  its own service registry, Istio connects to a service discovery
  system. For example, if you’ve installed Istio on a Kubernetes
  cluster, then Istio automatically detects the services and endpoints
  in that cluster.</p>
</blockquote>

<p><strong>So Kubernetes service is needed for istio to achieve service discovery i.e to know the POD IPs. But kubernetes service(L4) is not used for load balancing and routing traffic because L7 envoy proxy does that in istio.</strong> </p>

<p>From the <a href="https://istio.io/docs/ops/deployment/requirements/" rel="nofollow noreferrer">docs</a>.</p>

<blockquote>
  <p>A pod must belong to at least one Kubernetes service even if the pod
  does NOT expose any port. If a pod belongs to multiple Kubernetes
  services, the services cannot use the same port number for different
  protocols, for instance HTTP and TCP.</p>
</blockquote>
