1. 用户请求
- 用户通过kubectl或其他API客户端向Kubernetes的API Server发送创建Pod的请求。这个请求包含了Pod的定义(Pod spec),比如容器的镜像、资源需求、环境变量等。
2. API Server处理
- 认证与授权:API Server首先验证请求的来源(通过证书或Token),然后确认发起请求的用户或应用是否有权限创建Pod。
- 准入控制:通过准入控制插件(如LimitRanger、ResourceQuota、NamespaceLifecycle等)验证或修改资源请求。
- 数据存储:将Pod的信息存储到etcd中,etcd是Kubernetes集群的分布式键值存储系统。
3. 调度器(kube-scheduler)
- kube-scheduler通过监听API Server(使用watch机制)来发现新创建的Pod对象,但尚未绑定到任何工作节点。
- 根据调度算法(预选算法+优选算法),为Pod选择一个合适的节点,并将调度结果更新到API Server和etcd中。