The TSB Service Registry
Our goal in this chapter is to understand how TSB has found and detected your application. You can then verify that TSB has correctly identified where the application is deployed, and the service name and port that it will use.
Prerequisites:
- I know that my service foo is deployed in namespace bar on cluster cluster-a
Steps:
- Can I verify that the service has been onboarded to the local Istio mesh?
- Can I verify that TSB has located my service?
- Can I check the detected service information, such as name and port?
Troubleshooting Steps
Check your Application has been Onboarded to the TSB Service Mesh
TSB discovers applications that have been deployed on TSB-managed clusters, and makes these applications available via the service mesh.
If you have direct access to your K8s cluster, you will see the following:
kubectl get pods -n bookinfo
NAME READY STATUS RESTARTS AGE
bookinfo-appgw-85fc64d876-jf4lp 1/1 Running 0 6h1m
details-v1-78f86f894c-gs94z 2/2 Running 0 5h51m
productpage-v1-975b67b7b-z75g7 2/2 Running 0 5h51m
ratings-v1-68d6b9c6f9-lbtz8 2/2 Running 0 5h51m
reviews-v1-7cb76df57-zbd7d 2/2 Running 0 5h51m
reviews-v2-7758b97dfc-48ztp 2/2 Running 0 5h51m
reviews-v3-6f5b89849c-qh6hl 2/2 Running 0 5h51m
kubectl get pod -n bookinfo productpage-v1-975b67b7b-z75g7 -o jsonpath='{.spec.containers[*].name}'
istio-proxy productpageObserve that each pod has an additional
istio-proxycontainer, which manages incoming and outgoing connections.No istio-proxy container?If you don't see the additional
istio-proxycontainer, this means that your application is not managed by the TSB service mesh. Most likely:- The namespace is not correctly labelled, for example, with the label
istio-injection=enabledoristio.io/rev=canary - The cluster has not been onboarded correctly to the TSB management plane
- If the namespace was labelled after the service was deployed, you'll need to re-deploy your application (
kubectl rollout restart)
For more information, refer to the Istio Sidecar Injection documentation.
- The namespace is not correctly labelled, for example, with the label
Verify that TSB has detected your Application
Your application details should have been detected by TSB, and recorded in the TSB Service Registry.
In this example, the service productpage is deployed in namespace bookinfo on clusters eks-owendemo-eu-west-1-1 and eks-owendemo-eu-west-3-2.
Log in to the TSB admin UI. Navigate to the Dashboard, and select CLUSTERS • NAMESPACES. This will list the resources you have permissions to view.
Select the appropriate namespace:
Chose the service that you are interested in:
Check the properties of your service
Browse through the service details:
Observe properties such as:
- Service Name: productpage
- State: Controlled by TSB
- Type: Internal to the mesh (you may also see Loadbalancer or External)
You can look through other properties and metrics; we'll discuss this in more detail in the next pages.
If the service is missing or does not have the properties that you expect, verify that it has been correctly deployed to your cluster and that the sidecar is present. Refer to your platform team for more assistance.