Scenario: Playing with Istio Service Mesh¶
Draft
NOT FINISHED YET
Prerequisites¶
- Playground One Network
Verify, that you have Deploy Istio
enabled in your configuration.
...
Section: Kubernetes Deployments
Please set/update your Integrations configuration
...
Deploy Istio? [true]:
...
Then, create the PGO EKS-EC2 cluster by running
Add-Ons¶
The Playground One provides a functional but basic Istio configuration only, yet. Since we want to get a little experience with it we deploy some of the most commonly used add-ons by running the commands below:
# Install Istio add-ons Kiali, Jaeger, Prmetheus, and Grafana
for ADDON in kiali jaeger prometheus grafana
do
ADDON_URL="https://raw.githubusercontent.com/istio/istio/1.22.3/samples/addons/$ADDON.yaml"
kubectl apply -f $ADDON_URL
done
Access Kiali
Use your browser to navigate to http://localhost:20001. You can replace localhost with the IP of your PGO server, if you need to.
Get your Shovel¶
To play with Istio we're using an AWS sample application for now. To deploy it run:
# Setup Namespace for Istio Mesh
cd ${ONEPATH}/experimenting/istio/istio-on-eks/modules/01-getting-started
kubectl create namespace workshop
kubectl label namespace workshop istio-injection=enabled
# Deploy sample app
helm install mesh-basic . -n workshop
The application’s (user interface) URL can be retrieved using the following command:
ISTIO_INGRESS_URL=$(kubectl get svc istio-ingressgateway -n istio-system -o jsonpath='{.status.loadBalancer.ingress[*].hostname}')
echo "http://$ISTIO_INGRESS_URL"
Accessing this URL in the browser will lead you to the Product Catalog application as shown here:
Generating Traffic¶
Let’s generate some traffic for our application. Use the siege command line tool to generate traffic to the application’s (user interface) URL by running the following commands in a separate terminal session.
If you get a command not found
you need to install siege
first.
Now run
ISTIO_INGRESS_URL=$(kubectl get svc istio-ingressgateway -n istio-system -o jsonpath='{.status.loadBalancer.ingress[*].hostname}')
# Generate load for 2 minute, with 5 concurrent threads and with a delay of 10s between successive requests
siege http://$ISTIO_INGRESS_URL -c 5 -d 10 -t 2M
And check the traffic graph in kiali.
Grafana¶
Grafana allows you to query, visualize, alert on and understand your metrics no matter where they are stored.
Access Grafana
Use your browser to navigate to http://localhost:3000/dashboards. You can replace localhost with the IP of your PGO server, if you need to.
Navigate into each of the provided Dashboards by clicking on the names as shown in this image. For example, when you navigate to the Istio Control Plane Dashboard you should see a dashboard similar to the image shown here.
Control Plane Dashboard monitors the health and performance of the control plane. Use this link to get details on all dashboards available out of the box: https://istio.io/latest/docs/ops/integrations/grafana/.