k8s组件
maste节点
- apiServer:资源操作的唯一入口,接受用户的输入,提供认证,控制访问等功能
- Scheduler:负责集群的资源调度,按照预定的调度策略将Pod调度到相应的node节点上
- controllerManager:负责维护节点的状态,比如程序部署的安排,故障检测,自动扩展,滚动更新等
- Etcd:负责存储集群种各种资源对象的信息,配置中心
node节点
- kubelet:负责维护容器的生命周期,通过控制docker来创建,更新,销毁容器
- kubeProxy:负责提供集群内部的服务发现和负载均衡
- Docker:负责节点上容器的各种操作
比如想运行一个nginx,即用户将命令输入到ApiServer,ApiServer收到命令之后,传递到Scheduler上,算出来具体应该分配到那个node节点上,之后再由ControllerManager去创建nginx容器,由etcd存储nginx容器的信息,之后再交给node节点的kubelet去创建容器
k8s 核心概念
Pod
- k8s的最小部署单元
- 一组容器的集合
- 共享网络
- 生命周期是短暂的
controller
- 确保预期的Pod副本数量
- 无状态应用部署
- 有状态应用部署
- 确保所有的node都运行同一个Pod
Service
- 定义一组Pod的访问规则