Deploy Istio Service Mesh with Istio Operator

Istio extends Kubernetes to establish a programmable, application-aware network using the powerful Envoy service proxy. Working with both Kubernetes and traditional workloads, Istio brings standard, universal traffic management, telemetry, and security to complex deployments.

Why do we need to use Istio Operator? Istio Operator making you easily to manage istio installation and you can also manage component like prometheus, kiali, and jaeger.

Requirement:
- kubectl
- minikube or other kubernetes engine(GKE, AWS EKS, or Alicloud AKS)
- istioctl

check if kubectl already connect with kubernetes, run on below command:

kubectl cluster-info

2. After that, install istio operator and CRD, run on below command to install istio operator

why we need CRD? CRD allow you adding new kubernetes capabilities to use any kind of object beyond the default installations. and Istio isn’t in the default installations.

istioctl operator init

istio operator running at istio-operator namespace. run on below command to check istio operator already running:

kubectl get pods -n istio-operator

3. Now you can deploy istio with istio operator. Copy and paste on below config to new file and run with kubectl apply.

kubectl apply -f istio.yaml

and yayy 🎉 istio already deployed.

what? what is istiod? what is istio-ingressgateway?

istiod is a istio control plane components consisting pilot, galley, citadel, and sidecar injector.

istio-ingressgateway in a simple explanation is like a entrance gate where all requests from outside come in and all requests will be forwarded to each service. and istio-ingressgateway have a external IP for access from outside, you can run on below command to check the external IP

kubectl get svc -n istio-system

AddOn Components

as I mentioned above istio have components like prometheus, jaeger, grafana, and kiali which are useful for monitoring and tracing your service.

Copy and paste on above config and run kubectl apply

kubectl apply -f istio-with-addon.yaml

and grafana, kiali, istio-tracing and prometheus already deploy.

wait, what is istio-tracing? istio-tracing is alias name for jaeger

run on below command to access prometheus:

kubectl port-forward -n istio-system svc/prometheus 9090:9090
open http://localhost:9090/

run on below command to access kiali:

kubectl port-forward -n istio-system svc/kiali 8081:20001
open http://localhost:8081/

run on below command to access jaeger:

kubectl port-forward -n istio-system svc/jaeger-query 8082:16686
open http://localhost:8082/

run on below command to access grafana:

kubectl port-forward -n istio-system svc/grafana 3000:3000
open http://localhost:3000/

and there you go! this is how to deploy istio with istio operator. and if you have any question or feedback please drop on comment section and give claps if it’s useful for you. Thank You.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store