k8s进阶学习3:创建pod流程图示

1.kubectl提交创建pod命令,api响应命令,通过一系列认证授权,把pod数据存储到etcd,创建deployment资源并初始化. ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

2.controller通过list-watch机制,监测发现新的deployment,将该资源加入到内部工作队列,发现该资源没有关联的pod和replicaset,启用deployment controller创建replicaset资源,再启用replicaset controller创建pod.

3.所有controller正常后.将deployment,replicaset,pod资源更新存储到etcd. ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
4.scheduler通过list-watch机制,监测发现新的pod,经过主机过滤主机打分规则,将pod绑定(binding)到合适的主机.

5.将绑定结果存储到etcd. ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
6.kubelet每隔 20s(可以自定义)向kube-apiserver通过NodeName 获取自身Node上所要运行的pod清单.通过与自己的内部缓存进行比较,新增加pod.

7.启动pod启动容器.

8.把本节点的容器信息pod信息同步到etcd.

原文地址:https://blog.51cto.com/goome/2361642

时间: 2024-10-15 14:45:21

k8s进阶学习3:创建pod流程图示的相关文章

k8s进阶学习2:user和rbac绑定

1.开始前,想个问题?在部署kubectl,kube-scheduler,kube-controller-manager,kubelet,都创建了user或者sa(service account).创建的user和sa都具有rbac分配的权限操作api.这个权限是怎么生成分配的呢? 2.新建一个user记录整个过程 向ca申请证书,私钥,csr(自动生成&&证书签名请求&&用于交叉签名或者重新签名)需要证书签名请求文件,文件参考见下: cat am1-csr.json {

Oracle进阶学习之创建数据库

写在前面: Oracle在创建用户的时候默认使用的表空间为User,我们一般不建议这样做,因为默认表空间的大小是固定的,如果我们创建的所有用户都使用默认的表空间会导致表空间空间不足,会导致指向User表空间的所有用户无法正常使用,听起来是多么可怕的一件事情,所以建议大家规范的使用数据库,规范的进行创建用户,在这里笔者建议大家给每个用户都单独创建一个表空间对象. 如何创建一个用户呢,笔者建议分为如下三个步骤: 1.创建表空间 create tablespace empit logging data

Oracle进阶学习之创建dblink

本文笔者简单说明Oracle创建dblink,dblink就是在一个数据库中直接对另一个数据库进行操作,听起来很美妙,其实并不难实现,我们只需要在该数据库上创建一个dblink关联到另一个数据库就可以了,闲话少说,直接上实例: 假如我们现在使用的是A数据库,我们想对B数据库进行操作,我们只需要执行如下语句: 第一个B代表在A上创建的dblink的名字,第二个B代表B数据库的用户名,pwd为密码,host为B的IP,port为B数据的端口号,service_name为B的实例名,执行后则创建完成.

ASP.NET Core on K8S深入学习(8)数据管理

本篇已加入<.NET Core on K8S学习实践系列文章索引>,可以点击查看更多容器化技术相关系列文章. 在Docker中我们知道,要想实现数据的持久化(所谓Docker的数据持久化即数据不随着Container的结束而结束),需要将数据从宿主机挂载到容器中,常用的手段就是Volume数据卷.在K8S中,也提供了存储模型Volume,支持我们将应用中的数据持久化存储到容器中. 一.Volume 1.1 关于K8S Volume 为了持久化保存容器的数据,我们可以使用K8S Volume,其

在Ceph中创建虚拟机流程改进之分析

作为个人学习笔记分享,有任何问题欢迎交流! 最近在Gerrit中看到一个change:https://review.openstack.org/#/c/94295/ , 它主要是对当前在Ceph中创建虚拟机的流程的改进.如果glance的backend是ceph, 则nova创建虚拟机到RBD的流程是这样的: 通过glance从ceph中下载image --> 本地 --> 复制image到rbd 这个change的目的就是:不需要下载到本地,直接在rbd中复制image,以提高虚拟机创建的速

Android 进阶学习:事件分发机制全然解析,带你从源代码的角度彻底理解(上)

http://blog.csdn.net/guolin_blog/article/details/9097463 事实上我一直准备写一篇关于Android事件分发机制的文章,从我的第一篇博客開始,就零零散散在好多地方使用到了Android事件分发的知识.也有好多朋友问过我各种问题,比方:onTouch和onTouchEvent有什么差别,又该怎样使用?为什么给ListView引入了一个滑动菜单的功能,ListView就不能滚动了?为什么图片轮播器里的图片使用Button而不用ImageView?

AngularJS进阶(四十)创建模块、服务

AngularJS进阶(四十)创建模块.服务 学习要点 使用模块构架应用 创建和使用服务 为什么要使用和创建服务与模块? 服务允许你打包可重用的功能,使之能在此应用中使用. 模块允许你打包可重用的功能,使之能跨应用使用. 一.应用程序模块化 先看看一个没有模块化的程序 <!DOCTYPE> <!-- use module --> <html ng-app="exampleApp"> <head> <title>Angluar

JBPM学习(四):执行流程实例

1.创建表空间 create tablespace TEST logging datafile 'e:\app\administrator\oradata\orcl\TEST.dbf' size 100M autoextend on next 100M maxsize 4096M extent management local; 2.创建用户并指定表空间 create use testuser identified by password default tablespace TEST temp

JBPM学习(三):管理流程定义

概念: ProcessDefinition,流程定义:一个流程的步骤说明,如一个请假流程.报销流程.是一个规则. ProcessDefinition,流程定义对象,是解析.jpdl.xml文件得到流程步骤的信息.没有更新操作,启动流程实例时是使用指定key的最新的版本. 1.部署流程定义 a)一次添加一个资源,相关文件在Classpath中 // 1,部署流程定义(添加) // jbpm4_deployment // jbpm4_deployprop // jbpm4_lob @Test pub