# Architecture
# Standard
Kubeprober adopts the master/agent architecture to manage diagnosis issues of multiple clusters, with its core architecture as follows:
The components of Kubeprober are as follows:
# probe-master
The operator running on the managing cluster maintains two CRDs: one is cluster to manage managed clusters, and the other is probe to manage built-in and custom diagnosed items. The probe-master pushes the latest diagnosis configuration to the managed cluster and provides an interface for viewing the diagnosis results of the managed cluster.
# probe-agent
The operator running on the managed cluster maintains two CRDs: one is probe, which is same as the probe-master and the probe-agent runs diagnosed items according to the definition of probe, and the other is ProbeStatus to record the diagnosis results of each probe and users can view the cluster diagnosis result by kubectl get probestatus in the managed cluster.
# probe-tunnel
The component running on the managed cluster connects to probe-master by WebSocket and provides a management channel of Kubernetes API from probe-master to managed cluster, which can issue probe to the managed cluster by probe-master and check the diagnosis results of the managed cluster.
# nsenter
The component is deployed in each node by DaemonSet to provide node-level diagnosis channel. It can enter the container of nsenter via kubectl exec, which is equal to running commands on node to diagnose issues.
# kubectl-probe
It is a command line tool developed based on kubectl plugin, which is provided by Kubeprober. For details, see Command Line Tool.
# Standalone
For diagnosis of a single cluster, try Single Cluster deployment, which only deploys the probe-agent component to run diagnosed items in the cluster. The architecture is as follows: