Getting Started
This guide lets you quickly evaluate Istio. If you are already familiar with Istio or interested in installing other configuration profiles or advanced deployment models5, refer to our which Istio installation method should I use? FAQ page.
You will need a Kubernetes cluster to proceed. If you don’t have a cluster, you can use kind6 or any other supported Kubernetes platform7.
Follow these steps to get started with Istio:
- Download and install Istio
- Install the Kubernetes Gateway API CRDs
- Deploy the sample application
- Open the application to outside traffic
- View the dashboard
Download Istio
Go to the Istio release8 page to download the installation file for your OS, or download and extract the latest release automatically9 (Linux or macOS):
Move to the Istio package directory. For example, if the package is
istio-1.25.0
:The installation directory contains:
- Sample applications in
samples/
- The
istioctl
10 client binary in thebin/
directory.
- Sample applications in
Add the
istioctl
client to your path (Linux or macOS):
Install Istio
For this guide, we use the demo
configuration profile11. It is
selected to have a good set of defaults for testing, but there are other
profiles for production, performance testing or OpenShift12.
Unlike Istio Gateways, creating
Kubernetes Gateways13 will, by default, also
deploy gateway proxy servers.
Because they won’t be used, we disable the deployment of the default Istio gateway services that
are normally installed as part of the demo
profile.
Install Istio using the
demo
profile, without any gateways:Add a namespace label to instruct Istio to automatically inject Envoy sidecar proxies when you deploy your application later:
Install the Kubernetes Gateway API CRDs
The Kubernetes Gateway API CRDs do not come installed by default on most Kubernetes clusters, so make sure they are installed before using the Gateway API.
Install the Gateway API CRDs, if they are not already present:
Deploy the sample application
You have configured Istio to inject sidecar containers into any application you deploy in your default
namespace.
Deploy the
Bookinfo
sample application15:The application will start. As each pod becomes ready, the Istio sidecar will be deployed along with it.
and
Note that the pods show
READY 2/2
, confirming they have their application container and the Istio sidecar container.Validate that the app is running inside the cluster by checking for the page title in the response:
Open the application to outside traffic
The Bookinfo application is deployed, but not accessible from the outside. To make it accessible, you need to create an ingress gateway, which maps a path to a route at the edge of your mesh.
Create a Kubernetes Gateway13 for the Bookinfo application:
By default, Istio creates a
LoadBalancer
service for a gateway. As we will access this gateway by a tunnel, we don’t need a load balancer. If you want to learn about how load balancers are configured for external IP addresses, read the ingress gateways18 documentation.Change the service type to
ClusterIP
by annotating the gateway:To check the status of the gateway, run:
Access the application
You will connect to the Bookinfo productpage
service through the gateway you just provisioned. To access the gateway, you need to use the kubectl port-forward
command:
Open your browser and navigate to http://localhost:8080/productpage
to view the Bookinfo application.
If you refresh the page, you should see the book reviews and ratings changing as the requests are distributed across the different versions of the reviews
service.
View the dashboard
Istio integrates with several different telemetry applications19. These can help you gain an understanding of the structure of your service mesh, display the topology of the mesh, and analyze the health of your mesh.
Use the following instructions to deploy the Kiali20 dashboard, along with Prometheus21, Grafana22, and Jaeger23.
Install Kiali and the other addons24 and wait for them to be deployed.
Access the Kiali dashboard.
In the left navigation menu, select Graph and in the Namespace drop down, select default.
The Kiali dashboard shows an overview of your mesh with the relationships between the services in the
Bookinfo
sample application. It also provides filters to visualize the traffic flow.Kiali Dashboard
Next steps
Congratulations on completing the evaluation installation!
These tasks are a great place for beginners to further evaluate Istio’s
features using this demo
installation:
- Request routing27
- Fault injection28
- Traffic shifting29
- Querying metrics30
- Visualizing metrics31
- Accessing external services32
- Visualizing your mesh33
Before you customize Istio for production use, see these resources:
Join the Istio community
We welcome you to ask questions and give us feedback by joining the Istio community36.
Uninstall
To delete the Bookinfo
sample application and its configuration, see
Bookinfo
cleanup.
The Istio uninstall deletes the RBAC permissions and all resources hierarchically
under the istio-system
namespace. It is safe to ignore errors for non-existent
resources because they may have been deleted hierarchically.
The istio-system
namespace is not removed by default.
If no longer needed, use the following command to remove it:
The label to instruct Istio to automatically inject Envoy sidecar proxies is not removed by default. If no longer needed, use the following command to remove it:
If you installed the Kubernetes Gateway API CRDs and would now like to remove them, run one of the following commands:
If you ran any tasks that required the experimental version of the CRDs:
Otherwise: