This scenario deploys a very simple application composed of only one service.
Run the commands from the project's base directory.
kubectl create namespace httpbin
kubectl apply -n httpbin -f ./httpbin/
For OpenShift, run:
oc new-project httpbin
oc adm policy add-scc-to-user anyuid -z default -n httpbin
oc adm policy add-scc-to-user privileged -z default -n httpbin
oc expose service istio-ingressgateway --hostname=httpbin.demo.example.com --port=80 -n istio-system
oc apply -n httpbin -f ./httpbin/
Check that the pod has 1 container only.
kubectl get pods -n httpbin
Open the Kiali console, go to the Applications page and check that httpbin
is flagged with "Missing Sidecar".
# Enable auto-injection of the proxy sidecar
kubectl label namespace httpbin istio-injection=enabled
kubectl delete pods -l app=httpbin -n httpbin
Check that the pod has 2 containers.
kubectl get pods -n httpbin
Generate some load.
loadtest -rate 5 -uri http://httpbin.demo.example.com/headers -uri http://httpbin.demo.example.com/status/200
Explore the Kiali graph page and the different dashboards.
Generate some errors.
for i in $(seq 0 10); do
curl -i http://httpbin.demo.example.com/status/500
sleep 1
done
Go back to the Kiali graph and see that the errors are detected.
Click on the "Distributed Tracing" tab to open the Jaeger UI and check a trace with error.
kubectl delete namespaces httpbin