kubelet делает все на узле.Типичный процесс создания модуля будет следующим:
- По умолчанию kubelet подключается к api-серверу через эту «вещь», называемую watch .Это своего рода паб / саб.Таким образом, kubelet будет подписан на событие «create pod», а api-сервер уведомит его о необходимости создания pod.
- kubelet получит время выполнения контейнера (docker или rkt) вместе с другими спецификациями podи создаст модуль.
Примечание: здесь задействованы другие компоненты, такие как планировщик и диспетчер контроллера (упомянутые в вашем посте как различные механизмы), но я их пропущу.
kubelet выполнит необходимые проверки жизнеспособности и готовности и сообщит api-серверу о состоянии.Успех! api-сервер обновит etcd (добавив метаданные модуля), чтобы отслеживать, что происходит в кластере.
В этот момент kubeletбудет отвечать за этот модуль.Если модуль выйдет из строя, kubelet сообщит об api-сервере, api-сервер даст команду убить модуль, включит новый и снова обновит сервер etcd.
Одна вещь, на которую следует обратить вниманиев том, что все компоненты в k8s общаются с api-сервером напрямую.Таким образом, диспетчер контроллера или планировщик не говорят kubelet, что делать.Скорее они говорят это api-серверу, а api-серверу kubelet.