背景情况 从Docker1.11版本开始,Docker依赖于containerd和runC来管理容器,containerd是控制runC的后台程序,runC是Docker公司按照OCI标准规范编写的一个操作容器的命令行工具,containerd这个后台程序还可以操作满足OCI标准规范的其他容器工具,也就意味着以后只要是按照OCI标准规范开发的容器工具,都可以被containerd使用起来.使用containerd好处是,当docker daemon或者containerd两个进程crash后,应…
背景介绍 在Kubernetes中卷的作用在于提供给POD持久化存储,这些持久化存储可以挂载到POD中的容器上,进而给容器提供持久化存储. 从图中可以看到结构体PodSpec有个属性是Volumes,通过这个Volumes属性可以关联到结构体Volume和结构体VolumeSource,而且这个Volumes属性是一个数组类型,就是说POD可以关联到多个不同类型的卷上面. 结构体Container表示POD中的容器,这个结构体有一个属性VolumeMounts,通过这个属性让容器知道具体挂载的存…
背景介绍 sysctl是一个允许改变正在运行中的Linux系统内核参数的接口.可以通过sysctl修改Linux系统内核中的TCP/IP 堆栈和虚拟内存系统的高级选项,而且不需要重新启动Linux系统,就可以实现优化Linux系统和提高应用进程运行性能. 通过Linux系统中的/proc虚拟文件系统来实现动态配置Linux系统内核参数,在/proc/sys目录下有Linux系统绝大多数的内核参数,这些内核参数可以在Linux系统运行时进行修改,并且不需要重新启动Linux系统便可以立刻生效,但是…
(一)背景资料 在Kubernetes1.2中这个第三方组件就是go-dockerclient,这是一个GO语言写的docker客户端,支持Dockerremote API,这个项目在https://github.com/fsouza/go-dockerclient中. 在Kubernetes1.3中直接使用docker公司提供的client来实现,通过这个client可以实现同DockerDeamon之间的通讯,这个客户端项目在https://github.com/docker/engine-…
(一)  背景资料 GPU就是图形处理器,是Graphics Processing Unit的缩写.电脑显示器上显示的图像,在显示在显示器上之前,要经过一些列处理,这个过程有个专有的名词叫"渲染" ,以前计算机上是没有GPU的,都是通过CPU来进行"渲染"处理的,这些涉及到"渲染"的计算工作非常耗时,占用了CPU的大部分时间.之后出现了GPU,是专门为了实现"渲染"这种计算工作的,用来将CPU解放出来,GPU是专为执行复杂的数…
Kubernetes发布历史回顾 Kubernetes 1.0 - 2015年7月发布 Kubernetes 1.1 - 2015年11月发布 Kubernetes 1.2 - 2016年3月发布 Kubernetes 1.3 - 2016年7月发布 Kubernetes 1.4 - 2016年9月发布 Kubernetes1.5发布计划 第一阶段:从2016年9月19日到2016年11月7日 明确所有kubernetes1.5新特性 合并所有已经被测试过的没有bug的代码 提交所有新特性代码…
Linux环境下Eclipse对C++新特性的支持设置     今天写一个简单的关于C11中的array容器的测试程序如下, #include <iostream> #include <array> using namespace std; int main() { std::array<int, 5> myarray = { 2, 16, 77, 34, 50 }; std::cout << "myarray contains:"; f…
Kubernetes发布历史回顾 Kubernetes 1.0 - 2015年7月发布 Kubernetes 1.1 - 2015年11月发布 Kubernetes 1.2 - 2016年3月发布 Kubernetes 1.3 - 2016年7月发布 Kubernetes 1.4 - 2016年9月发布 Kubernetes1.5发布计划 第一阶段:从2016年9月19日到2016年11月7日 明确所有kubernetes1.5新特性 合并所有已经被测试过的没有bug的代码 提交所有新特性代码…
(一)  背景资料 GPU就是图形处理器,是Graphics Processing Unit的缩写.电脑显示器上显示的图像,在显示在显示器上之前.要经过一些列处理,这个过程有个专有的名词叫"渲染" ,曾经计算机上是没有GPU的,都是通过CPU来进行"渲染"处理的,这些涉及到"渲染"的计算工作很耗时.占用了CPU的大部分时间.之后出现了GPU,是专门为了实现"渲染"这样的计算工作的.用来将CPU解放出来,GPU是专为运行复杂的数…
sysctl是一个允许改变正在运行中的Linux系统内核参数的接口.可以通过sysctl修改Linux系统内核中的TCP/IP 堆栈和虚拟内存系统的高级选项,而且不需要重新启动Linux系统,就可以实现优化Linux系统和提高应用进程运行性能. 通过Linux系统中的/proc虚拟文件系统来实现动态配置Linux系统内核参数,在/proc/sys目录下有Linux系统绝大多数的内核参数,这些内核参数可以在Linux系统运行时进行修改,并且不需要重新启动Linux系统便可以立刻生效,但是这种修改在…
背景介绍 在Kubernetes中卷的作用在于提供给POD存储,这些存储可以挂载到POD中的容器上,进而给容器提供存储. 从图中可以看到结构体PodSpec有个属性是Volumes,通过这个Volumes属性可以关联到结构体Volume和结构体VolumeSource,而且这个Volumes属性是一个数组类型,就是说POD可以关联到多个不同类型的卷上面. 结构体Container表示POD中的容器,这个结构体有一个属性VolumeMounts,通过这个属性让容器知道具体挂载的存储路径,这个Vol…
(一)  背景资料 对于Kubernetes来说,从架构设计上就是支持Docker和CoreOS rkt两种容器的,在1.2版本中,最低支持CoreOS rkt 0.13.0版本,这个rkt版本算是一个开发测试版本.CoreOS rkt在2016年正式发布了1.0,rkt从1.0开始算是一个正式生产版本了,Kubernetes在1.3中最低支持CoreOS rkt 1.9.1.由于Kubernetes支持了CoreOS rkt正式生产版本,也就意味着Kubernetes真正可以在生产环境中同时实…
背景概念 出于安全方面的考虑,Kubernetes提供了日志审计记录,用来记录不同普通用户.管理员和系统中各个组件的日志信息. Kubernetes日志审计是Kube-apiserver组件的一部分功能,通过日志审计来记录apiserver上面所有请求处理过程.每条审计日志记录包括两行: 1.  请求行:唯一ID.源IP.请求用户.请求资源信息.模拟信息等. 2.  响应行:唯一ID.相应信息代码. 通过唯一ID就可以识别出对应的请求行和响应行. 下面的例子就是admin用户查询default命…
背景概念 在Kubernetes中,为了保证业务不中断或业务SLA不降级,需要将应用进行集群化部署.通过PodDisruptionBudget控制器可以设置应用POD集群处于运行状态最低个数,也可以设置应用POD集群处于运行状态的最低百分比,这样可以保证在主动销毁应用POD的时候,不会一次性销毁太多的应用POD,从而保证业务不中断或业务SLA不降级. 在Kubernetes 1.5中,kubectl drain命令已经支持了PodDisruptionBudget控制器,在进行kubectl dr…
一.核心概念 Horizontal Pod Autoscaling,简称HPA,是Kubernetes中实现POD水平自动伸缩的功能.云计算具有水平弹性的特性,这个是云计算区别于传统IT技术架构的主要特性.对于Kubernetes中的POD集群来说,HPA可以实现很多自动化功能,比如当POD中业务负载上升的时候,可以创建新的POD来保证业务系统稳定运行,当POD中业务负载下降的时候,可以销毁POD来提高资源利用率. HPA控制器默认每隔30秒就会运行一次,如果要修改间隔时间,可以设置horizo…
背景资料 在Kubernetes架构图中可以看到,节点(Node)是一个由管理节点委托运行任务的worker. 它能运行一个或多个Pods,节点(Node)提供了运行容器环境所需要的所有必要条件,在Kubernetes之前版本中叫做Minion. 相关结构体 通过下面这张图可以看到在Kubernetes中节点(Node)的相关结构体信息: •       结构体Node:表示Kubernetes中的节点,在节点上面运行POD. •       结构体NodeSpec:存放节点的属性信息. 1. …
(一)  核心概念 在kubernetes1.3中新增了一个资源回收控制器GarbaseCollector,用这个控制器来替代kubernetes1.3中的资源回收控制器GC. 如下为kubernetes1.2中的资源回收控制器结构体: 如下为kubernetes1.3中的资源回收控制器结构体: 在kubernetes1.2中,如果要实现对资源级联回收功能,需要通过客户端进行资源级联回收调用的方式实现,比如存在一个replica set类型的资源,在这个资源下面存在多个POD资源,如果我们使用命…
Entity Framework 6提供支持存储过程的新特性,本文具体演示Entity Framework 6 Code First的存储过程操作. Code First的插入/修改/删除存储过程 默认情况下下,Code First配置对全部实体的插入/修改/删除操作均直接针对表进行.从EF6开始可以配置对全部或部分实体来选择使用存储过程. 1. 基本实体映射 1.1 通过Fluent API,配置使用插入/修改/删除存储过程 modelBuilder .Entity<Blog>() .Map…
Mozilla的官方博客2015.4.30正式宣布了淘汰HTTP的方案. 其中包括:设定一个日期,所有的新特性将只提供给HTTPS网站:HTTP网站将逐步被禁止访问浏览器功能,尤其是那些与用户安全和隐私相关的功 能.Mozilla此举是向Web开发者社区发出一条信息,他们需要确保网站的安全性,而只有整个Web社区和浏览器开发商联合起来,淘汰HTTP才能真 正实现. Mozilla计划不久之后向W3C WebAppSec工作组递交相关提议. 对于这项策略,也有不同的观点,总结无外乎以下几点: 1.…
Mozilla的官方博客2015.4.30正式宣布了淘汰HTTP的方案. 其中包括:设定一个日期,所有的新特性将只提供给HTTPS网站:HTTP网站将逐步被禁止访问浏览器功能,尤其是那些与用户安全和隐私相关的功能.Mozilla此举是向Web开发者社区发出一条信息,他们需要确保网站的安全性,而只有整个Web社区和浏览器开发商联合起来,淘汰HTTP才能真正实现. Mozilla计划不久之后向W3C WebAppSec工作组递交相关提议. 对于这项策略,也有不同的观点,总结无外乎以下几点: 1.SS…
在Kubernetes中卷的作用在于提供给POD持久化存储,这些持久化存储可以挂载到POD中的容器上,进而给容器提供持久化存储. 从图中可以看到结构体PodSpec有个属性是Volumes,通过这个Volumes属性可以关联到结构体Volume和结构体VolumeSource,而且这个Volumes属性是一个数组类型,就是说POD可以关联到多个不同类型的卷上面. 结构体Container表示POD中的容器,这个结构体有一个属性VolumeMounts,通过这个属性让容器知道具体挂载的存储路径,这…
(一)  核心概念 Kubernetes在新版中会新增了一个设置JOB执行计划的功能,在1.3中已经可以初见端倪了,从进度上来看会在1.4版本中进行发布,下面我们先睹为快. Kubernetes通过这个功能可以给JOB设置执行时间,这个功能类似一个开源项目quartz提供的功能.Quartz是一个完全由Java编写的开源作业调度框架,为在Java应用程序中进行作业调度提供了简单却强大的机制,Quartz允许开发人员根据时间间隔来调度作业. 下图是这个新功能的核心概念模型: (二)  数据结构介绍…
Servlet 3.0版本新增注解支持,可是在实际使用中,添加的注解总是不起作用.经过检查,原来是“web.xml”文件的顶级标签“<web-app/>”中的一个叫做“metadata-complete”的属性在作怪.以下摘抄一段对于该属性的描述文字: Servlet 3.0 的部署描述文件 web.xml 的顶层标签 <web-app> 有一个 metadata-complete 属性,该属性指定当前的部署描述文件是否是完全的.如果设置为 true,则容器在部署时将只依赖部署描述…
我们都知道以前字典迭代中是不支持动态修改的[否则会报错::"Collection was modified; enumeration operation may not execute."-- 集合已修改 无法进行操作] 但.Net 5将支持字典迭代中的动态修改 详情见下 首先创建一个Dictionary 并尝试迭代中进行修改 var dict = new Dictionary<int, int>() { [1001] = 1, [1002] = 10, [1003] =…
VS2013出来了,对于C++来说,最大的改变莫过于对于C++11新特性的支持,在网上搜了一下C++11的介绍,发现这篇文章非常不错,分享给大家同时自己作为存档. 原文地址:http://www.ibm.com/developerworks/cn/aix/library/1307_lisl_c11/ C++ 的新标准 C++11 已经发布一段时间了.本文介绍了新标准中的一个特性,右值引用和转移语义.这个特性能够使代码更加简洁高效. 新特性的目的 右值引用 (Rvalue Referene) 是…
Hadoop3.0新特性介绍,比Spark快10倍的Hadoop3.0新特性 Apache hadoop 项目组最新消息,hadoop3.x以后将会调整方案架构,将Mapreduce 基于内存+io+磁盘,共同处理数据.其实最大改变的是hdfs,hdfs 通过最近black块计算,根据最近计算原则,本地black块,加入到内存,先计算,通过IO,共享内存计算区域,最后快速形成计算结果. 1. Hadoop 3.0简介 Hadoop 2.0是基于JDK 1.7开发的,而JDK 1.7在2015年4…
PHP 5.3中的新特性 1. 支持命名空间 (Namespace) 2. 支持延迟静态绑定(Late Static Binding) 3. 支持goto语句 4. 支持闭包.Lambda/Anonymous函数 5. 新增两个魔术方法__callStatic()和__invoke() 6. 新增Nowdoc语法 7. 在类外也可使用const来定义常量 8. 三元运算符增加了一个快捷书写方式: 9. HTTP状态码在200-399范围内均被认为访问成功 10.支持动态调用静态方法 在PHP5.…
你可能已经听说过 ECMAScript 6 (简称 ES6)了.ES6 是 Javascript 的下一个版本,它有很多很棒的新特性.这些特性复杂程度各不相同,但对于简单的脚本和复杂的应用都很有用.在本文中,我们将讨论一些精心挑选的 ES6 特性,这些特性可以用于你日常的 Javascript 编码中. 请注意,当前浏览器已经全面展开对这些 ES6 新特性的支持,尽管目前的支持程度还有所差异.如果你需要支持一些缺少很多 ES6 特性的旧版浏览器,我将介绍一些当前可以帮助你开始使用 ES6 的解决…
放着好好的成熟的AJS 3.19不学,为什么要去碰乳臭未干的AJS 4.2? 4.2全线基础学习请点击[直达] 4.3及更高版本的补充学习请关注我的博客. ArcGIS API for JavaScript 4.2概述 AJS 4.2,即ArcGIS API for JavaScript 4.2,是美国ESRI公司针对WebGIS市场推出的.利用JavaScript和Dojo开发的一款产品,它在2016年12月发布.而AJS 4.0 beta则在一年前就发布了. 关于AJS3和AJS4选择的问题…
前言 首先,恭喜 CAP 已经成为 eShopOnContainers 官方推荐的生产环境可用的 EventBus 之一. 自从上次 CAP 2.4 版本发布 以来,已经过去了几个月的时间,关注的朋友可能知道,在这几个月的时间里,也发布了几个预览版的 2.5 版本的NuGet包. 简介 可能有些人还不知道 CAP 是什么,老规矩来一个简介. CAP 是一个用来解决微服务或者分布式系统中分布式事务问题的一个开源项目解决方案(https://github.com/dotnetcore/CAP)同样可…