kubectl apply.Разберём по шагам.
Когда вы применяете манифест, на самом деле происходит следующее:
-
kubectl отправляет YAML в kube-apiserver- API Server валидирует манифест, аутентифицирует запрос и записывает желаемое состояние в
etcd- Scheduler отслеживает Pod'ы, которые ещё не назначены ни на одну ноду. Он оценивает доступные ноды, выбирает наиболее подходящую и привязывает к ней Pod
-
kubelet на выбранной ноде видит новое назначение Pod'а. Он скачивает образ, запускает контейнер и отправляет статус обратно-
kube-proxy следит за изменениями Service'ов и Endpoint'ов. Он обновляет правила iptables или IPVS, чтобы трафик мог доходить до вашего Pod'аА теперь самое интересное.
- Вся система работает по событийной модели — event-driven. Компоненты не опрашивают друг друга
- Каждый компонент следит за изменениями через API Server и реагирует только тогда, когда это необходимо
Именно поэтому Kubernetes называют системой desired state — «желаемого состояния».
Вы декларативно описываете, что хотите получить. А Kubernetes сам приводит систему к этому состоянию.
В материале подробно разбирается архитектура Kubernetes и показывается, что на самом деле происходит под капотом после запуска
kubectl apply.Читать здесь:
https://devopscube.com/kubernetes-architecture-explained/
👉 DevOps Portal
