Mesh Doctor is a tool to troubleshoot and debug issues in a Service Mesh setup. Mesh
doctor collects required configurations and logs, runs an analysis, and generates reports.
The reports summarize the state of your Service Mesh and suggest necessary troubleshooting
steps to fix any issues.
Using Mesh Doctor
You can use the Mesh Doctor tool in two ways.
OCI CLI: Run Mesh Doctor from the command line with the debug command.
Click Troubleshoot on the resource's details
page.
Select the context of the OKE cluster.
Click Start Troubleshooting.
The OCI Console opens the Mesh Doctor command in an OCI Cloud Shell window
and runs a command. When the command completes, Mesh Doctor provides the
path to the zipped file with the generated reports. To view the reports,
unzip the file in Cloud Shell or download the zipped file from Cloud
Shell.
Important
Cloud Shell powers the Mesh Doctor user interface. This command
only works in public clusters. The command times out in private clusters.
Mesh Doctor Command-Line Options 🔗
The following table provides a detailed list of all the Mesh Doctor command line
options based on the oci service-mesh debug base command.
Parameter
isOptional
Value Type
Default
Example
Notes
kubeconfig
True
FilePath(String)
kubeconfig present in
~/.kube/config
~/config
Config of the Kubernetes cluster. If the config isn't provided, the default config is used by the command.
resource-id
True
OCID
Null
ocid1.mesh.oc1.iad.id
Resource to be diagnosed. If the resource isn't provided the command diagnoses the installation.
context
True
String
current-context in kube-config
context-aaa
The context of the Kubernetes cluster.
thread-pool-size
True
Int
25
10
Number of threads used to parallelize the processing.
Using Mesh Doctor CLI to Troubleshoot Setup 🔗
To troubleshoot an entire service mesh setup in the Kubernetes cluster, run the
following command.
Copy
oci service-mesh debug report
Using Mesh Doctor CLI to Troubleshoot Mesh
Resources 🔗
The following Mesh Doctor CLI commands provide example use cases.
Running the command produces output similar to the following:
Bundle file path: /my-home/service-mesh-debug-report_07-01-2022_20-00-00
=============================== Mesh Report Analysis ===============================
OLM version: v0.20.0
| Sidecar Image Versions |
| Version | Count |
| 0.1.520 | 13 |
All sidecars are using same version
| Config Versions |
| Version | Count |
| 5 | 13 |
All configs are of the same version
All Operator Services are installed
All Mesh Webhooks are installed
All Mesh Custom Resources are installed
Mesh Doctor runs kubectl commands on behalf of the user using the user's existing Kubernetes authorizations. If the required permissions aren't present, the command fails to collect data.
To collect all the required data, users need the following access permissions:
list, get, exec - for pods in
the service mesh.
list, get - for all mesh resources
(CRD's).
list, get, exec - for the
pods in the OLM namespace.
When Mesh Doctor runs, the tool structures the data returned into a reporting
hierarchy. When Mesh Doctor runs on a specific resource, the tool includes only the
data for that resource and child data in the report. Mesh Doctor uses the following
reporting structure.
Mesh <directory>
Mesh report
OCI Service Operator for Kubernetes logs
Dump of cluster service version
Customer resource definition (CRD) of mesh if present