<p>I'm studying the main components of kubernetes.
I was momentarily stuck regarding the concept of creating (deleting) a pod. In many charts or figures the pods are depicted inside the worker nodes and for this reason I was convinced that they were objects created directly in the worker node.</p>

<p>In depth this concept I came across some pages that see the pod as a simple placeholder in the API server instead.</p>

<p>In this reference <a href="https://banzaicloud.com/blog/k8s-custom-scheduler/" rel="nofollow noreferrer">link</a> it is said that in the first point the pod is created and in the fourth point that the pod is associated with the node from the API server. <br>
In this reference <a href="https://dzone.com/articles/kubernetes-lifecycle-of-a-pod" rel="nofollow noreferrer">link</a> it is said that "a new Pod object is created on API server but is not bound to any node." <br>
In this reference <a href="https://stackoverflow.com/questions/41012246/steps-involved-in-creating-a-pod-in-kubernetes">link</a> it is said that "A Pod has one container that is a placeholder generated by the Kubernetes API"</p>

<p>All this makes me think that a pod is not actually created in a worker node.
Could someone give me an explanation to clarify this idea for me?</p>

Humbrum
<p>Simply speaking the process of running pod is the following:</p>

<ol>
<li>User makes API request to create pod in namespace.</li>
<li>API server validates the request making sure that user has necessary authorization to create pod in given namespace and that request conforms to PodSpec.</li>
<li>If request is valid API server creates API object of kind "Pod" in its Etcd database.</li>
<li>Kube-scheduler watches Pods and sees that there is new Pod object. It then evaluates Pod's resources, affinity rules, nodeSelectors, tolerations and so on and finally makes a decision on which node the pod should run. If there are no nodes available due to lack of resources or other constraints - Pod remains in state Pending. Kube-scheduler periodically retries scheduling decisions for Pending pods. </li>
<li>After Pod is scheduled to node kube-scheduler passes the job to kubelet on selected node.</li>
<li>Kubelet is then responsible for actually starting the pod.</li>
</ol>
