在的二进制部署方式中,kubelet、etcd、kube-apiServer、kube-controller-manager、kube-scheduler组件均作为一项系统服务部署,服务配置文件位于/usr/lib/systemd/system/<object-name.service>,启动参数配置位于/etc/kubernetes/<object-name>。
而kubeadm作为致力于简化集群安装过程的工具,并不再把组件用上述服务注册启动的方式进行安装。
引用文章https://segmentfault.com/a/1190000018741112?utm_source=tag-newest 中对kubeadm部署原理的叙述:
kubeadm做了这些事
执行 kubeadm init时:
- 自动化的集群机器合规检查
- 自动化生成集群运行所需的各类证书及各类配置,并将Master节点信息保存在名为cluster-info的ConfigMap中。
- 通过static Pod方式,运行API server, controller manager 、scheduler及etcd组件。
- 生成Token以便其他节点加入集群
执行 kubeadm join时:
- 节点通过token访问kube-apiserver,获取cluster-info中信息,主要是apiserver的授权信息(节点信任集群)。
- 通过授权信息,kubelet可执行TLS bootstrapping,与apiserver真正建立互信任关系(