Pod是Kubernetes的基礎單元,了解其創建的過程,更有助於理解系統的運作。
①用戶通過kubectl或其他API客戶端提交Pod Spec給API Server。
②API Server嘗試將Pod對象的相關信息存儲到etcd中,等待寫入操作完成,API Server返回確認信息到客戶端。
③API Server開始反映etcd中的狀態變化。
④所有的Kubernetes組件通過"watch"機制跟蹤檢查API Server上的相關信息變動。
⑤kube-scheduler(調度器)通過其"watcher"檢測到API Server創建了新的Pod對象但是沒有綁定到任何工作節點。
⑥kube-scheduler為Pod對象挑選一個工作節點並將結果信息更新到API Server。
⑦調度結果新消息由API Server更新到etcd,並且API Server也開始反饋該Pod對象的調度結果。
⑧Pod被調度到目標工作節點上的kubelet嘗試在當前節點上調用docker engine進行啟動容器,並將容器的狀態結果返回到API Server。
⑨API Server將Pod信息存儲到etcd系統中。
⑩在etcd確認寫入操作完成,API Server將確認信息發送到相關的kubelet。