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
- First make sure your kubectl already connected to kubernetes.
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
run on below command to access kiali:
kubectl port-forward -n istio-system svc/kiali 8081:20001
run on below command to access jaeger:
kubectl port-forward -n istio-system svc/jaeger-query 8082:16686
run on below command to access grafana:
kubectl port-forward -n istio-system svc/grafana 3000: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.