Deploy Sample App

The Istio package that you downloaded includes a sample application called Bookinfo that demonstrates the capabilities of Istio. We will install Bookinfo and use it to test our OpenTelemetry configuration later.

  1. Deploy the Bookinfo application in your cluster. If using a namespace other than the default namespace be sure to add -n NAMESPACE to the following command
kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml
  1. This will deploy the 4 services and 6 pods that make up the Bookinfo application. Check your pods and wait until all are reporting READY 2/2 with a STATUS of Running before proceeding to the next step
kubectl get pods
  1. Run the following command to verify that everything is working correctly. You should get a response with <title>Simple Bookstore App</title>
kubectl exec "$(kubectl get pod -l app=ratings -o jsonpath='{.items[0].metadata.name}')" -c ratings -- curl -sS productpage:9080/productpage | grep -o "<title>.*</title>"

Allow Inbound Traffic

Now that we have the Bookinfo application deployed we need to make it accessible to outside traffic so we can test it. We will use an Istio Ingress Gateway to accomplish this

  1. Create the Istio gateway and associate the Bookinfo application
kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml
  1. Run the analyze command to check for any issues with the configuration
istioctl analyze
  1. Follow the steps here to determine the ingress IP and ports
  2. Get the external address of the application
echo "http://$GATEWAY_URL/productpage"
  1. Copy and paste the output from the last command in your browser. You should see the Bookinfo product page displayed

Simple Bookstore App

Great, Istio is installed and the Bookinfo app is running! Next we will configure distributed tracing with OpenTelemetry

next: Configure Distributed Tracing