Skip to main content
This guide shows how to deploy the Bookinfo sample application onto Istio Service Mesh and enable automatic sidecar injection for the namespace so Envoy proxies are added to each pod.
A presentation slide titled "Deploying Our First Application With Istio" with a dark blue curved panel on the right featuring a browser-window icon and a plus symbol.
Overview
  • Deploy the Bookinfo sample application.
  • Verify pods and check whether Envoy sidecars are injected.
  • If sidecars are missing, enable automatic injection for the namespace and re-deploy.
Deploy the Bookinfo sample application (from the official Istio samples repository):
Typical output will list multiple Deployments and Services being created, for example:
Check pod status across namespaces:
Example output showing only the application containers (no Envoy sidecars yet):
Note the READY column values are 1/1, meaning each pod has only the application container. This indicates automatic sidecar injection did not occur in the namespace where the pods were created. Diagnose missing sidecar injection using istioctl:
A common diagnostic result:
Why this happens
  • Istio performs automatic sidecar injection at the namespace level. If the namespace is not labeled for injection, newly created pods in that namespace will not receive injected Envoy proxies.
  • Labeling gives you control over which namespaces are part of the mesh (for example, you may want Istio enabled for application namespaces such as hr or payroll but not for kube-system).
Enable automatic sidecar injection for the default namespace:
Verify the label is applied:
Example output showing the label:
Label changes apply only to pods created after the label is set. To have existing pods receive an Envoy sidecar, they must be restarted or re-created (for example, delete and re-deploy the resources).
Because the original Bookinfo pods were created before enabling injection, delete the Bookinfo resources and re-deploy so the new pods will receive Envoy sidecars:
Example (truncated):
Re-deploy the Bookinfo sample:
Verify pods now include both the application container and the Envoy sidecar:
You should now see READY values of 2/2, indicating two containers per pod (application + Envoy):
Conclusion
  • After labeling the namespace for Istio injection and re-creating the pods, Envoy sidecar proxies will be injected automatically and your Bookinfo application becomes part of the service mesh.
  • For more details, see the Istio documentation: Istio diagnostic tools — istioctl analyze and the Bookinfo sample in the Istio repository: samples/bookinfo/platform/kube.
Command quick reference

Watch Video