The first Istio version (V1.0) available for production was officially released on July 31, 2018.
The previous article has introduced Istio and its core components, and described how to quickly build an Istio open platform for connecting, managing, and securing microservices on the basis of Alibaba Cloud Container Service for Kubernetes.
This article uses an official example to demonstrate how to deploy applications in this Istio environment. This example comes with Istio. For more information about this example, visit the official Istio guide. As shown below, the example application is composed of four separate microservices that are compiled in different languages. These services are not dependent on Istio.
To run the example application with Istio requires no changes to the application itself. Instead, you simply need to configure and run the services in an Istio-enabled environment, with Envoy sidecars injected along side each service.
All of the microservices will be packaged with an Envoy sidecar that intercepts incoming and outgoing calls for the services, providing the hooks needed to externally control, via the Istio control plane, routing, telemetry collection, and policy enforcement for the application as a whole.
As of writing, the latest Istio LTS version is 0.8.0. You can download and install this version at this link.
After installation, find the examples directory, as shown below:
By default, you must manually inject a sidecar for the created Kubernetes cluster by running the following command:
kubectl apply -f <(istioctl kube-inject --debug -f samples/bookinfo/kube/bookinfo.yaml)
The istioctl kube-inject
command is used to modify the bookinfo.yaml file before creating the deployments.This injects Envoy into the Kubernetes resources.
The preceding command launches all the four microservices, as shown in the following figure.Three versions of the reviews service, including v1, v2, and v3, are started.
Run the following command to define the ingress gateway:
istioctl create -f samples/bookinfo/routing/bookinfo-gateway.yaml
By now, the microservices in the example and their sidecars and ingresses are established, as shown below:
Confirm that all services are normally started:
Run the following command to obtain the ingress address information:
kubectl get svc istio-ingressgateway -n istio-system
Alternatively, you can view the ingress address information on the Alibaba Cloud Container Service for Kubernetes interface. As shown in the figure below, click Services
on the left-side navigation bar, and select the namespace istio-system
on the right. The istio-ingressgateway information is displayed.
Access example page: http://{EXTERNAL-IP}/productpage
If you refresh the browser for multiple times, different versions of the reviews service are displayed on the productpage in round robin (red star, black star, and no star) mode. This is because Istio is currently not used to control version routing.
Based on this example, the next article will explain how to use the Istio functions, such as traffic routing, fault injection, rate limiting, and traffic shifting.
We can use Alibaba Cloud Container Service for Kubernetes to quickly build an Istio open platform for connecting, managing, and securing microservices, and to introduce and configure multiple relevant services for applications.This article uses an official example to demonstrate how to deploy applications in this Istio environment. Based on this example, the next article will explain how to use the Istio functions, such as traffic routing, fault injection, rate limiting, and traffic shifting.
You are welcome to use Alibaba Cloud Container Service for Kubernetes to quickly build an Istio open platform and integrate Istio to microservice development in your project.
This article series introduces Istio and its core components, as well as describes how to quickly build an Istio open platform for connecting, managing, and securing microservices on the basis of Alibaba Cloud Container Service for Kubernetes. These articles also use an official example to demonstrate how to deploy an application in the Istio environment; how to configure intelligent routing and distributed tracing; and how to configure Istio functions of collecting, querying, and visualizing the telemetry data.
To review these articles, see:
Using Istio on Alibaba Cloud Container Service for Kubernetes
Intelligent Routing with Istio on Alibaba Cloud Container Service for Kubernetes
56 posts | 8 followers
FollowXi Ning Wang - August 21, 2018
Xi Ning Wang - August 30, 2018
Xi Ning Wang - August 21, 2018
Alibaba Container Service - May 30, 2019
Xi Ning Wang - August 30, 2018
Xi Ning Wang - August 21, 2018
56 posts | 8 followers
FollowAlibaba Cloud Container Service for Kubernetes is a fully managed cloud container management service that supports native Kubernetes and integrates with other Alibaba Cloud products.
Learn MoreProvides a control plane to allow users to manage Kubernetes clusters that run based on different infrastructure resources
Learn MoreAccelerate and secure the development, deployment, and management of containerized applications cost-effectively.
Learn MoreA secure image hosting platform providing containerized image lifecycle management
Learn MoreMore Posts by Xi Ning Wang(王夕宁)