Installing Istio on Kubernetes

A service mesh normally requires an API server, an API client, access control information, a load balancer, authentication and authorization, circuit breaking, and monitoring/tracing.

The service mesh ecosystem includes the following:

  • Control plane: Istio, Nelson, SmartStack 
  • Data plane: Envoy, Linkerd, HAproxy, NGINX
  • Open source service mesh control plane
A uniform way to integrate microservices, manage traffic flow across microservices, enforce policies, and aggregate telemetry data was announced in May 2017.

Let's see how to install Istio on Kubernetes:

  1. First, we need to download the Istio tar file from the following link, depending on your OS:
wget https://github.com/istio/istio/releases/download/1.1.0.snapshot.1/istio-1.1.0.snapshot.1-linux.tar.gz

  1. Extract the TAR file, move it to the Istio root directory, and install isto-demo-auth.yml using this command:
 kubectl apply -f install/kubernetes/istio-demo-auth.yaml

The preceding command will create the istio-system namespace along with RBAC permissions.

  1. To verify the Istio installation, use the following command:
 kubectl get service -n istio-system

  1. To verify Kubernetes pods and container status, use the following command:
kubectl get pods -n istio-system

Let's deploy one application to see how Istio works with Kubernetes. You can use the bookinfo sample application, which is already available with the Istio package.

Use this command to deploy the bookinfo application, along with all services:

kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml

In this sample application, we are going to create four microservices:

  • reviews: Contains book reviews
  • rating: Contains book ratings
  • details: Contains book information
  • productpage: Calls review and details services to get data

Confirm all services are running using this command:

Confirm the status of all pods using this command:

Let's perform the following steps:

  1. Use the following command to set up an ingress gateway:
kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml

  1. Then, enter the following command:
kubectl get svc istio-ingressgateway -n istio-system

  1. Set gateway_url using the following command:
export GATEWAY_URL=35.239.7.64:80
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset