安装
### 使用kubeadm 先安装三个执行程序(组件)
- kubeadm
- kubelet
- kubectl
master 上使用 kubeadm 初始化, 使用kubeadm将当前node节点join到这个集群中
(图中没有kubeadm)
kubernetes组件
- API Server(工作于master node中),所有管控面的入口
- scheduler,调度器,通过和api server交互和调度算法,将pod调度到node上
- controller manager,各种controller集合,将deployment、replicaset中的期望结果变成现实(执行并达到期望结果)
- kubelet(work node上),监听获取master的指令,将node上的信息提交给master
- kube-proxy,主要是数据平台的数据出入口
kubelet是node上的重要组件
每个node上有一个kubelet
kubelet的主要功能
- 创建pod
- 监视pod
- 挂载volums
- 运行容器
- 周期执行探针
- 下载pod的secret
- 上报pod状态
- 上报node状态
创建pod功能
- 通过读取文件来创建pod,比如static pod
- 通过启动参数中的url,获取到pod定义文件
- 通过apiserver获取pod的定义文件
virtual kubelet解决的问题
有的情况,并不想将一个node(物理机或者虚拟机)直接变为一个集群中的一个node。比如,有10台物理机的集群,想把这个10台物理机的集群,作为一个node加入到k8s的集群中,那么virtual kubelet(virtal node)就能派上用场
云厂商怎样使用vk
https://github.com/virtual-kubelet/virtual-kubelet
- 主要场景,就是serverless 容器