1、kubernets的工作流程

(1)开始部署新的应用程序,使用kubectl客户端工具和一个准备好的包含应用程序的Deployment的yaml文件;用户通过kubectl命令将文件的内容发送给API Server。

(2)API Server接收到客户端的请求并将资源内容存储到数据库中;在本实例中,存储的数据库使用的是etcd(目前在kubernets最常用的数据库就是etcd。可以根据需要使用其他的数据库)。

(3)controller组件一直在监控系统中的变化;
这些组件包含有:调度器(Scheduler)、replication controllers(用于伸缩副本数量)、endpoint controller(用于管理网络请求等)

(4)ReplicaSet的概念:它作为一个“副本集”对象用于分装对Pod的弹性伸缩,它可以告知Kubernets有一个Pod需要在Kubernets中运行,并且需要根据伸缩pod的实例数量;
        例如,通过ReplicaSet可以在Kubernets中部署一个Pod并在集群中始终维持5个Pod的实例。 ReplicaSet Controller监控数据库中的数据变化,包括新创建的实例定义或者对已有ReplicaSet定义的修改,然后根据在数据库中所观察到的变化,检查实际环境中的该ReplicaSet所拥有的实例数量,如果实例数量超过了5个,则controller会杀掉富余的pod;如果实例的数量不足,则会立即创建新的pod补充;

(5)Scheduler controller会再次检查数据库,并发现在数据库中存在一批尚未被分配到具体执行节点(Node)的pod,这时Scheduler会根据一组相关规则将这些pod分配到可以允许它们的节点上去,并更新数据库,记录这些pod被分配到哪些节点上。

(6)kubelet运行在kubernets集群的每一个执行节点上,kubelet监控数据库中的数据从而发现那些被分配到他所在节点上运行的那些pod,如果发现有新分配到的pod,kubelet将在本节点上运行这个新的pod;所以kubelet会根据它在数据库中看到的数据创建运行pod所需要的容器。这个就是kubernets管理应用程序的基本过程和步骤

  docker engine、kubernets自己并不直接创建容器,它可以通过一个可插拔的层来实现容器的创建,在这一层中可以使用docker或者其他容器引擎,kubernets实现了各种容器引擎的结合。

  图上标识出了容器镜像缓存,在缓存中会存放那些已经下载了的保函应用程序代码的容器镜像;

(7)Kubeproxy运行在集群中的各个主机上负责管理网络通信;当有数据包发送到主机上时,Kubeproxy可以将其路由到正确的pod或者容器,对于从主机发出的数据,Kubeproxy也会通过类似的流程处理,他可以基于请求地址发现远程服务器,并将数据正确路由;在某些情况下,会使用round-robin算法将请求发送给集群中的多个实例。

2、kubernets的一些新特性

(1)Customer Resource Defines(自定义资源类型),代替了 Third Party Resources;CRD是一种可在数据库中存储的用户自定义资源,用户可以运行自己的controller组件来监控这些自定义资源并执行后续的操作,这样一来,用户就可以扩展Kubernets的资源模型而不必为了扩展功能而修改kubernets代码了;
(2)NetworkPolicy:它负责配置Pod组如何与彼此和其他网络端点进行通信。换句话说,它在运行于Kubernetes集群上的Pod间创建防火墙。
(3)Encryption for data at rest in Secrets
(4)"Local Storage" persistent volume type was add -> pod communication
(5)API Aggregation:它可以设置API Server让其成为其他一个或者多个API Server的代理,同样的,这项功能运行用户扩展Kubernets模型定义新的资源类型,这些功能可以被隐藏在主Kubernets API Server之后实现,从而方便用户扩展资源模型;
(6)External admission Controller
(7)Role Based Access Controller(RBAC)is in beta
(8)Kubeadm (tool for deploying kube) is in beta
(9)Node affinity/anti-affinity, taints, tolerations for scheduling

Kubernets 第一讲 初探的更多相关文章

  1. 【JavaScript从入门到精通】第一课 初探JavaScript魅力-01

    第一课 初探JavaScript魅力-01 JavaScript是什么 如今我们打开一个大型的网站,都会有很多JS效果的功能和应用.对于学过CSS+HTML的同学,即使是像淘宝那样的网站,用一两天时间 ...

  2. CS193P - 2016年秋 第一讲 课程简介

    Stanford 的 CS193P 课程可能是最好的 ios 入门开发视频了.iOS 更新很快,这个课程的最新内容也通常是一年以内发布的. 最新的课程发布于2016年春季.目前可以通过 iTunes ...

  3. POI教程之第一讲:创建新工作簿, Sheet 页,创建单元格

    第一讲 Poi 简介 Apache POI 是Apache 软件基金会的开放源码函数库,Poi提供API给java程序对Microsoft Office格式档案读和写的功能. 1.创建新工作簿,并给工 ...

  4. 《ArcGIS Engine+C#实例开发教程》第一讲桌面GIS应用程序框架的建立

    原文:<ArcGIS Engine+C#实例开发教程>第一讲桌面GIS应用程序框架的建立 摘要:本讲主要是使用MapControl.PageLayoutControl.ToolbarCon ...

  5. 32位汇编第一讲x86和8086的区别,以及OllyDbg调试器的使用

    32位汇编第一讲x86和8086的区别,以及OllyDbg调试器的使用 一丶32位(x86也称为80386)与8086(16位)汇编的区别 1.寄存器的改变 AX 变为 EAX  可以这样想,16位通 ...

  6. 异常处理第一讲(SEH),筛选器异常,以及__asm的扩展,寄存器注入简介

    异常处理第一讲(SSH),筛选器异常,以及__asm的扩展 博客园IBinary原创  博客连接:http://www.cnblogs.com/iBinary/ 转载请注明出处,谢谢 一丶__Asm的 ...

  7. 常见注入手法第一讲EIP寄存器注入

    常见注入手法第一讲EIP寄存器注入 博客园IBinary原创  博客连接:http://www.cnblogs.com/iBinary/ 转载请注明出处,谢谢 鉴于注入手法太多,所以这里自己整理一下, ...

  8. 逆向实用干货分享,Hook技术第一讲,之Hook Windows API

    逆向实用干货分享,Hook技术第一讲,之Hook Windows API 作者:IBinary出处:http://www.cnblogs.com/iBinary/版权所有,欢迎保留原文链接进行转载:) ...

  9. PE文件格式详解,第一讲,DOS头文件格式

    PE文件格式详解,第一讲,DOS头文件格式 今天讲解PE文件格式的DOS头文件格式 首先我们要理解,什么是文件格式,我们常说的EXE可执行程序,就是一个文件格式,那么我们要了解它里面到底存了什么内容 ...

随机推荐

  1. ActiveX 控件

    一.ActiveX基础 1.1什么是ActiveX ActiveX是COM规范的一种实现,前身是OLE(Object Linking and Embedding).一般读成:ActiveX Ctron ...

  2. redis 启动

    C:\Users\Administrator>cd c:\ c:\>cd redis-2.6 c:\redis-2.6>redis-server.exe redis.conf 测试r ...

  3. JMeter学习(二十九)自动化badboy脚本开发技术(转载)

    转载自 http://www.cnblogs.com/yangxia-test 一般人用badboy都是使用它的录制功能,其它badboy还是一款自动化的工具,它可以实现检查点.参数化.迭代.并发.报 ...

  4. Java拦截器+注解搭配使用

    拦截器加注解可以实现登录权限验证等操作,我的应用场景也是为了验证这个,下面是简单的实现步骤   一.什么是拦截器? 拦截器是对action的一种拦截,可以在请求前后进行一些处理 可拦截controll ...

  5. spark快速开发之scala基础之3类,对象,特征

    类 scala的类定义非常灵活 class test4 class test2{} class test3(x:Int) 定义一个带构造函数的类 class Point (x : Int,y : In ...

  6. Linux 设置Redis开机启动

    Debian 也就是Ubun16.04 亲测可用 http://www.tuicool.com/articles/UR73ieq Centos7.0 http://blog.csdn.net/alex ...

  7. Struts2学习资料

    Struts2入门示例教程 http://blog.csdn.net/wwwgeyang777/article/details/19078545     Struts2工作原理 http://blog ...

  8. Redis集群部署及命令

    一.简介 redis集群是一个无中心的分布式Redis存储架构,可以在多个节点之间进行数据共享,解决了Redis高可用.可扩展等问题. redis集群提供了以下两个好处: 将数据自动切分(split) ...

  9. zabbix监控指定端口

    生产上经常会监控某些具体端口状态,下面介绍具体步骤: 主机名 ip 操作系统 zabbix版本 zabbix-server 172.27.9.63 Centos7.3.1611 zabbix_serv ...

  10. mysql中插入序列表

    利用序列表来实现列转行:CREATE TABLE sequence(id INT UNSIGNED NOT NULL auto_increment PRIMARY KEY)往里面插入数据 INSERT ...