The node controller is a Kubernetes control plane component that manages various aspects of nodes:
etcd is pronounced /ˈɛtsiːdiː/, and means “distributed etc directory
etcd is a consistent and highly-available key value store used as Kubernetes' backing store for all cluster data.
Kubernetes itself is a distributed system, which makes us of etcd to stores configuration data into etcd for service discovery and cluster management.
etcd’s consistency is crucial for correctly scheduling and operating services
The Kubernetes API server persists cluster state into etcd. It uses etcd’s watch API to monitor the cluster and roll out critical configuration changes.
The core of Kubernetes' control plane is the API server. The API server exposes an HTTP API that lets end users, different parts of your cluster, and external components communicate with one another. See more at here
The Kubernetes API lets you query and manipulate the state of API objects in Kubernetes (for example: Pods, Namespaces, ConfigMaps, and Events).
Most operations can be performed through the kubectl command-line interface or other command-line tools, such as kubeadm, which in turn use the API. However, you can also access the API directly using REST calls.
If you are writing an application using the Kubernetes API, try one of the client libraries
Below sections discuss on using kubectl to interact with the API Server