Kubernets 第一讲 初探
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 第一讲 初探的更多相关文章
- 【JavaScript从入门到精通】第一课 初探JavaScript魅力-01
第一课 初探JavaScript魅力-01 JavaScript是什么 如今我们打开一个大型的网站,都会有很多JS效果的功能和应用.对于学过CSS+HTML的同学,即使是像淘宝那样的网站,用一两天时间 ...
- CS193P - 2016年秋 第一讲 课程简介
Stanford 的 CS193P 课程可能是最好的 ios 入门开发视频了.iOS 更新很快,这个课程的最新内容也通常是一年以内发布的. 最新的课程发布于2016年春季.目前可以通过 iTunes ...
- POI教程之第一讲:创建新工作簿, Sheet 页,创建单元格
第一讲 Poi 简介 Apache POI 是Apache 软件基金会的开放源码函数库,Poi提供API给java程序对Microsoft Office格式档案读和写的功能. 1.创建新工作簿,并给工 ...
- 《ArcGIS Engine+C#实例开发教程》第一讲桌面GIS应用程序框架的建立
原文:<ArcGIS Engine+C#实例开发教程>第一讲桌面GIS应用程序框架的建立 摘要:本讲主要是使用MapControl.PageLayoutControl.ToolbarCon ...
- 32位汇编第一讲x86和8086的区别,以及OllyDbg调试器的使用
32位汇编第一讲x86和8086的区别,以及OllyDbg调试器的使用 一丶32位(x86也称为80386)与8086(16位)汇编的区别 1.寄存器的改变 AX 变为 EAX 可以这样想,16位通 ...
- 异常处理第一讲(SEH),筛选器异常,以及__asm的扩展,寄存器注入简介
异常处理第一讲(SSH),筛选器异常,以及__asm的扩展 博客园IBinary原创 博客连接:http://www.cnblogs.com/iBinary/ 转载请注明出处,谢谢 一丶__Asm的 ...
- 常见注入手法第一讲EIP寄存器注入
常见注入手法第一讲EIP寄存器注入 博客园IBinary原创 博客连接:http://www.cnblogs.com/iBinary/ 转载请注明出处,谢谢 鉴于注入手法太多,所以这里自己整理一下, ...
- 逆向实用干货分享,Hook技术第一讲,之Hook Windows API
逆向实用干货分享,Hook技术第一讲,之Hook Windows API 作者:IBinary出处:http://www.cnblogs.com/iBinary/版权所有,欢迎保留原文链接进行转载:) ...
- PE文件格式详解,第一讲,DOS头文件格式
PE文件格式详解,第一讲,DOS头文件格式 今天讲解PE文件格式的DOS头文件格式 首先我们要理解,什么是文件格式,我们常说的EXE可执行程序,就是一个文件格式,那么我们要了解它里面到底存了什么内容 ...
随机推荐
- Java学习04 (第一遍)
封装.抽象.继承和多态.封装:在面向对象语言中,封装特性是由类来体现的,我们将现实生活中的一类实体定义成类,其中包括属性和行为(在Java中就是方法),就好像人类,可以具有name,sex,age等属 ...
- 吴裕雄 python神经网络 花朵图片识别(9)
import osimport numpy as npimport matplotlib.pyplot as pltfrom PIL import Image, ImageChopsfrom skim ...
- stringBuffer和stringBulider的区别
今天去面试了,问了最基础的stringBuffer和stringBulider的区别,我没有回答出来.之前就知道自己的基础很差,没想到这么差. 网上看了一下资料,stringBuffer和string ...
- 学JS的心路历程 -数组常见处理方法
昨天我们有提到说for-of和forEach可以用来处理数组,但其实还有很多方法可以更快速及精简代码的达到你要的效果. 话不多说,我们赶紧来看吧! Array.prototype.map() 会回传一 ...
- 用R理解统计学
1.随机变量( random variable)概念的引入 该数据来自杰克逊实验室.2组数据,每组12只老鼠,一组普通食物,另一组高脂肪(hf)饮食.几周后,科学家们称了每只老鼠的体重,得到了这个数据 ...
- Loading Assets from AssetBundles
[Loading Assets from AssetBundles] 1.LoadAsset GameObject gameObject = loadedAssetBundle.LoadAsset&l ...
- The CHAR and VARCHAR Types
[The CHAR and VARCHAR Types] The CHAR and VARCHAR types are declared with a length that indicates th ...
- SVN基本页面
- 获取cookie
1.cookie是存储在用户本地终端的数据,实际上是一小段的文本信息 2.cookie的作用 帮助web站点保存有关的访问者的信息,方便用户的访问,如记住用户名和密码,实现自动登录功能案例:查看访问我 ...
- 七、Builder 建造器模式
需求:需要组装复杂结构的实例 代码清单: Builder 接口: public abstract class Builder { public abstract void makeTitle(Stri ...