<p>Namespace isolated containers(Pod) &amp; Nodes hosting the Pods are part of data plane</p>
<p><code>kubectl describe pod [pod-name]</code> command talks to API server and provide information like node details, date started, and the troubleshooting events etc...stored in <code>etcd</code></p>
<p><code>kubelet</code>'s probe from dataplane(on every node)  takes care of healthcheck of all containers within pod.</p>
<hr />
<p>Is replicaset functionality part of control plane?</p>
<p>To ensure the DESIRED state of replica set, which component in <em>control plane</em> probes data plane ?</p>

<p>It is the <code>kube-controller-manager</code> under which kubernetes is running several type of controllers.</p>
<blockquote>
<p>The Kubernetes controller manager is a daemon that embeds the core
control loops shipped with Kubernetes. In applications of robotics and
automation, a control loop is a non-terminating loop that regulates
the state of the system. <strong>In Kubernetes, a controller is a control loop
that watches the shared state of the cluster through the apiserver and
makes changes attempting to move the current state towards the desired
state.</strong> Examples of controllers that ship with Kubernetes today are the
replication controller, endpoints controller, namespace controller,
and serviceaccounts controller.</p>
<p>kube-controller-manager [flags]</p>
</blockquote>
<p>Here is the example <code>--controllers</code> flag showing what all controllers can be controlled by <code>kube-controller-manager</code> , by changing this flag, you may exclude some of the controllers.</p>
<pre><code>kubectl get pod -n kube-system kube-controller-manager-controlplane -o jsonpath='{.spec.containers[*].command}'
[&quot;kube-controller-manager&quot;,&quot;--allocate-node-cidrs=true&quot;,&quot;--authentication-kubeconfig=/etc/kubernetes/controller-manager.conf&quot;,&quot;--authorization-kubeconfig=/etc/kubernetes/controller-manager.conf&quot;,&quot;--bind-address=127.0.0.1&quot;,&quot;--client-ca-file=/etc/kubernetes/pki/ca.crt&quot;,&quot;--cluster-cidr=10.244.0.0/16&quot;,&quot;--cluster-name=kubernetes&quot;,&quot;--cluster-signing-cert-file=/etc/kubernetes/pki/ca.crt&quot;,&quot;--cluster-signing-key-file=/etc/kubernetes/pki/ca.key&quot;,&quot;--controllers=*,bootstrapsigner,tokencleaner&quot;,&quot;--kubeconfig=/etc/kubernetes/controller-manager.conf&quot;,&quot;--leader-elect=true&quot;,&quot;--port=0&quot;,&quot;--requestheader-client-ca-file=/etc/kubernetes/pki/front-proxy-ca.crt&quot;,&quot;--root-ca-file=/etc/kubernetes/pki/ca.crt&quot;,&quot;--service-account-private-key-file=/etc/kubernetes/pki/sa.key&quot;,&quot;--service-cluster-ip-range=10.96.0.0/12&quot;,&quot;--use-service-account-credentials=true&quot;]
</code></pre>
<p>In the above output you can see that all(<code>*</code>) controllers are selected by default:</p>
<pre><code>--controllers=*
</code></pre>
<p>As per documentation, following is the complete list of the controllers working under <code>kube-controller-manager</code>.</p>
<blockquote>
<p>--controllers strings     Default: &quot;*&quot;</p>
</blockquote>
<p>A list of controllers to enable. '*' enables all on-by-default controllers,</p>
<blockquote>
<p>'foo' enables the
controller named 'foo', '-foo' disables the controller named 'foo'.
All controllers: attachdetach, bootstrapsigner, cloud-node-lifecycle,
clusterrole-aggregation, cronjob, csrapproving, csrcleaner,
csrsigning, daemonset, deployment, disruption, endpoint,
endpointslice, endpointslicemirroring, ephemeral-volume,
garbagecollector, horizontalpodautoscaling, job, namespace, nodeipam,
nodelifecycle, persistentvolume-binder, persistentvolume-expander,
podgc, pv-protection, pvc-protection, <strong>replicaset</strong>,
<strong>replicationcontroller</strong>, resourcequota, root-ca-cert-publisher, route,
service, serviceaccount, serviceaccount-token, statefulset,
tokencleaner, ttl, ttl-after-finished Disabled-by-default controllers:
bootstrapsigner, tokencleaner</p>
</blockquote>
