当我们启动命令Kubectl apply -f <file.yaml>
时,后台会发生什么?
简而言之,Kubernetes的工作原理是有一堆"对象";或";资源";定义(如Deployments、ConfigMaps等),并不断尝试将系统的状态与这些定义相匹配。
例如,如果有一个部署定义,但没有为此运行的pod,K8将继续尝试旋转这样的pod。这可能会由于多种原因而失败——可能没有足够可用资源的节点,可能找不到图像,等等,但一旦清除了所有障碍,它就会启动pod,而无需您采取进一步行动。
然后,kubectl apply -f file.yaml
只需读取该文件的内容,并将其添加到定义的内部存储中(其中,如果涉及覆盖、合并或删除,"添加"可能意味着一种复杂的情况;有关详细信息,请参阅man kubectl-apply
文档)。