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. eval解析字符串为JSON对象

    对于服务器返回的JSON字符串,如果jquery异步请求没做类型说明,或者以字符串方式接受,那么需要做一次对象化处理,方式不是太麻烦,就是将该字符串放于eval()中执行一次. 这种方式也适合以普通j ...

  2. hdu1799-循环多少次?-(组合恒等式)

    循环多少次? Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

  3. yii 缓存的使用 以及使用需要开启php的apc扩展

    public function behaviors() { return [ [ 'class' => 'yii\filters\PageCache', 'only' => ['index ...

  4. “2017面向对象程序设计(Java)第十三周学习总结”存在问题的反馈及本周教学安排

    “2017面向对象程序设计(Java)第十三周学习总结”存在问题的反馈及本周教学安排1. 图形界面事件处理技术是Java GUI编程核心技术,要求同学们掌握其基本原理和基本编程模型:2. 本周四理论课 ...

  5. kdump内核

    什么是kdump?   kdump 是一种先进的基于 kexec 的内核崩溃转储机制.当系统崩溃时,kdump 使用 kexec 启动到第二个内核.第二个内核通常叫做捕获内核,以很小内存启动以捕获转储 ...

  6. ssh架构之hibernate(四)二级缓存

    二级缓存使用步骤: 1.拷贝jar包 2.配置Hibernate.cfg.xml文件 a.#开启二级缓存 hibernate.cache.use_second_level_cache=true b.# ...

  7. Java中String的常用方法总结

    Java中String的常用方法总结 1.length()字符串的长度 String str="HelloWord"; System.out.println(str.length( ...

  8. 创建java项目思路

    一.搭建 1.创建搭建项目 2.创建分层 二.理解项目(理清总体思路) 1.是否有共同部分(过滤或者拦截) 常用量 (static) 2.搭建单表基本增(是否需要返回值)   删(条件)    查(条 ...

  9. Python 豆瓣日记爬取

    无聊写了个豆瓣日记的小爬虫,requests+bs4. cookies_src可填可不填,主要是为了爬取仅自己可见的日记. url填写的是日记页面,即https://www.douban.com/pe ...

  10. Struts学习资料

    Strust组件—ActionServlet详解 http://ltc603.iteye.com/blog/68637