<p>I already have some services in my k8s cluster and want to mantain them separately. Examples:</p>

<ul>
<li>grafana with custom dashboards and custom dockerfile</li>
<li>prometheus-operator instead of basic prometheus</li>
<li>jaeger pointing to elasticsearch as internal storage</li>
<li>certmanager in my own namespace (also I use it for nginx-ingress legacy routing)</li>
</ul>

<p>Is it possible to use existing instances instead of creating istio-specific ones? Can istio communicate with them or it's hardcoded?</p>

<p>Kubernetes provides quite a big variety of Networking and Load Balancing features from the box. However, the idea to simplify and extend the functionality  of <a href="https://istio.io/docs/setup/kubernetes/sidecar-injection/#automatic-sidecar-injection" rel="nofollow noreferrer">Istio sidecars</a> is a good choice as they are used for automatic injection into the Pods in order to proxy the traffic between internal Kubernetes services.</p>

<p>You can implement <code>sidecars</code> manually or automatically. If you choose the manual way, make sure to add the appropriate parameter under Pod's annotation field:</p>

<pre><code>annotations:
        sidecar.istio.io/inject: "true"
</code></pre>

<p>Automatic <code>sidecar</code> injection requires <a href="https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/" rel="nofollow noreferrer">Mutating Webhook admission controller</a>, available since Kubernetes version 1.9 released, therefore <code>sidecars</code> can be integrated for Pod's creation process as well.</p>

<p>Get yourself familiar with this <a href="https://medium.com/@timfpark/more-batteries-included-microservices-made-easier-with-istio-on-kubernetes-87c8b76ac2ef" rel="nofollow noreferrer">Article</a> to shed light on using different monitoring and traffic management tools in Istio.</p>
