我们上一章部署都是通过神奇的kubectl命令。我们这章就探寻一下,当我们拍下kubectl命令到Pod成功启动之间,Kubernetes究竟做了一些什么事情。
先上一张总的架构图,下面提到每个组件的时候可以在这张架构图上找位置,以及和其他组件间的关联关系:
1. 全流程
1.1 Kubectl
kubectl是用于针对Kubernetes集群运行命令的命令行接口。
虽然我们是在Master节点上执行运行的kubectl,但其实kubectl也可以在本地安装,与k8s的api server远程通信交互。
kubectl在接到apply命令后,会先做一个基本的验证。如果要创建的资源不合法,或YAML格式错误,就会快速失败。
除了通过kubectl之外,也可以直接调用api,或通过dashboard UI等多种方式与api server通信。
在通信之前,kubectl需要先进行身份认证。认证信息保存在$HOME/.kube/config文件里,大致内容如下:
1 | [root@docker-4 .kube]# pwd |
config文件中的clusters.cluster.server就是要访问的api server的地址