The Istio Service Mesh
Istio addresses the challenges developers and operators face with a distributed or microservices architecture. Whether you're building from scratch or migrating existing applications to cloud native, Istio can help.
Install istioctl
Download and Install latest istioctl
in your local machine:
curl -L https://istio.io/downloadIstio | sh -
ISTIO_DIR=$(find . -name istio*)
export PATH=$ISTIO_DIR/bin:$PATH
cd $ISTIO_DIR
Get started
Enable Istio Service Mesh on default
Namespace
Label the default
namespace for Istio automatic sidecar injection:
kubectl label namespace default istio.io/rev=1-10-1
NOTE:
The revision value corresponds to the Istio version that was installed. The example above shows Istio v1.10.1 was installed. For example if your use 1.8.6 then the istio.io/rev
will be istio.io/rev=1-8-6
Deploy BookInfo Application
Now deploy Deploy Bookinfo Application
Once successfully deployed, expose the application to outside world
After you have exposed the application to outside world, try accessing it using the $GATEWAY_IP.
Run the following command to get Istio Ingress IP:
export GATEWAY_IP=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
Accessing the application,
curl -I $GATEWAY_IP/productpage
The curl should return a response as shown below:
HTTP/1.1 200 OK
content-type: text/html; charset=utf-8
content-length: 5179
server: istio-envoy
date: Thu, 10 Jun 2021 06:51:29 GMT
x-envoy-upstream-service-time: 107
(OR)
Opening the following url in the web browser, to see the sample book application landing page:
"http://$GATEWAY_IP/productpage"
Documentation
Further reading
- A Collection of Istio and Civo tutorials
- Example of Civo and Argo CD use cases: