容器技术

升级Kubernetes 1.18前,你不得不知的9件事

China☆狼群 提交于 2020-03-27 11:04:38
本文来自 Rancher Labs 昨天Kubernetes最新版本v1.18已经发布,其包含了38项功能增强,其中15项为稳定版功能、11项beta版功能以及12项alpha版功能。在本文中,我们将探索其中一些功能,希望能帮助你决定是否需要升级。那么,我们现在开始吧! 将Service Account Token作为通用身份验证方法 Kubernetes使用service account来验证集群内的服务。例如,如果你想要一个pod来管理其他Kubernetes资源,如Deployment或者Service,你可以与Service Account相关联并创建必要的角色和角色绑定。Kubernetes Service Account(KSA)发送JSON Web Tokens(JWT)到API server以验证它们。这使API server成为service account身份验证的唯一来源。 那么,如果实体需要针对集群外的其他服务进行身份验证,该怎么办?为了使用其KSA,外部身份验证器必须联系API server以验证请求。但是,API server不应公开访问。因为这使你可以使用其他身份验证系统进行验证,这会增加复杂性。即使第三方服务位于可以访问API server的集群中,也会增加负载。 于是在Kubernetes 1.18中增加了一个功能(#1393),该功能使API

大会聚焦 | 开源技术盛会LinuxCon首次来到中国,大咖齐聚关注业界动态

匆匆过客 提交于 2020-03-25 17:48:13
2017年6月19-20日,开源技术盛会LinuxCon + ContainerCon + CloudOpen(LC3)首次在中国举行。两天议程满满,包括 17 个主旨演讲、8 个分会场的 88 场技术报告和微软等公司的技术展览和动手实验。LinuxCon 吸引了众多国际国内互联网巨头、电信巨头和上千名业界人士参会,包括Linux创始人Linus Torvalds,大咖齐聚共同关注业界动态。 SDN/NFV:两大支柱构建未来网络 本次LC3 会议,探讨未来网络的构建,其中出现频率最高的关键词就是 SDN(软件定义网络)和NFV(网络功能虚拟化)。传统网络是个“黑盒子”,管理不够灵活,支持的网络规模不够大,网络状态的可见性和可调试性不足。随着云计算兴起的软件定义网络(SDN)和网络功能虚拟化(NFV)就致力于解决“黑盒”的问题。SDN 南向接口统一了纷杂的网络设备 API,北向接口则可以提供网络全局视图,方便集中运维。NFV 则是用软件来实现防火墙、负载均衡、虚拟网络隧道等网络功能(network function),使得网络功能更加灵活。 在会议上,云计算和5G 巨头纷纷指出使用 SDN 和 NFV 的新理由: 异构网络需求的集中调度 。不管是云服务,还是万物互联的 5G 电信网络,客户和应用的需求都千差万别,有的需要高带宽,有的需要低延迟,有的需要高稳定性。这就需要云计算平台和

容器、应用服务器和web服务器的区别

生来就可爱ヽ(ⅴ<●) 提交于 2020-03-25 07:34:58
什么是容器 servlet没main()方法。它们受控于另一个java应用,这个java应用称为容器(Container) Tomcat是这样的容器,Web服务器应用(Apache)得到一个指向servlet请求时,服务器不是把这个请求交给servlet本身,而是交给部署该servlet的容器。要由容器向servlet提供HTTP请求和响应,而且要由容器调用servlet的方法。 客户-->请求--->Web服务器应用--->web容器应用--->servlet-------->web服务器主机 客户<--响应<---Web服务器应用<---web容器应用<---servlet<--------web服务器主机 容器提供: 通信支持:建立serverSocket、监听某个端口、创建流等; 生命周期管理:控制servlet生死,负责加载类、实例化和初始化servlet、调用servlet方法及使servlet实例能够被垃圾回收; 所线程支持:容器会自动为接收的每个servlet请求创建一个新的java线程,运行完响应HTTP服务方法线程就结束。 生命方式实现安全:可以使用xml部署描述文件来配置(或修改)安全性,而不用硬编码写到servlet类代码中。 JSP支持。 容器处理servlet 客户---->http请求---->容器----->servlet 容器---> 创建 请求

Docker入门及实战演练(一)

一曲冷凌霜 提交于 2020-03-25 03:59:46
一.简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。几乎没有性能开销,可以很容易地在机器和数据中心中运行。 二.Docker基本组成 1.镜像(Image) 镜像,就是面向对象中的类,相当于一个模板。从本质上来说,镜像相当于一个文件系统。Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。 2.容器(Container) 容器,就是类创建的实例,就是依据镜像这个模板创建出来的实体。容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的命名空间。因此容器可以拥有自己的root 文件系统、自己的网络配置、自己的进程空间,甚至自己的用户ID 空间。容器内的进程是运行在一个隔离的环境里,使用起来,就好像是在一个独立于宿主的系统下操作一样。这种特性使得容器封装的应用比直接在宿主运行更加安全。 3.仓库(Repository) 仓库,从认识上来说,就好像软件包上传下载站,有各种软件的不同版本被上传供用户下载。镜像构建完成后

数据中心如何实现传统网络与容器网络的架构共存

戏子无情 提交于 2020-03-24 19:45:21
一、 概述 随着数据中心网络技术的革新,并伴随容器的落地,如何在数据中心内部构建一个合理可用的网络架构,以满足不同形态的业务部署模式,成为一个网络人员越来越需要注重和考虑的方向。 二、 业务背景 在互联网公司的数据中心,通常你会越来越多的看到容器(k8s)作为业务/服务的载体,各业务/服务之间(pod间)彼此调用,以下从pod间调用、容器网络选型、容器网络架构、网络隔离几个方面进行阐述。 三、 pod间调用 同一node内pod间调用 pod间通过容器网络纯内部交互,这时外部网络无感知。 不通node的pod间调用 pod间需要经过容器网络→外部网络进行交互,交互过程可提前将pod ip或cluster ip暴露到外网,具体依据业务需求和网络模型而定。 四、 容器网络选型 容器网络选型通常参照以下几点: 业务实现方式; 网络资源调配; 网络扩展及灵活性; 对底层物理网络的依赖度; 网络资源的收放要求; 开源容器网络组件按照网络覆盖类型大致可分为:overlay和underlay,underlay相比overlay在传输效率、部署实现及维护等方面更有优势( 详细的各种容器网络组件横向比较,可自行查询学习,此处不详细展开 )。 以calico为例,作为underlay的容器网络解决方案,依靠动态路由协议bgp实现网络互通,并通过原生的network policy解决容器间网络隔离。

Windows Server 2019 预览版介绍

橙三吉。 提交于 2020-03-23 07:50:44
在Windows server 2012、Windows server 2016还未完全普及的情况下,昨天Windows Server团队宣布Windows Server 2019将在2018年的下半年推出。现阶段,大家可以通过微软的Insiders程序访问预览版本。( Insiders位置 ) Windows Server 2019中新增功能: Windows Server 2019建立在Windows Server 2016的坚实基础之上,而Windows Server 2016是迄今为止Windows Server最快采用的版本。自Ignite 2016发布以来,Windows Server团队一直忙于从用户的反馈和产品遥测中获取洞察力,并不断完善新版本。 Windows Server团队还花了很多时间与客户一起了解未来的挑战以及行业的发展方向。四个主题是一致的 - 混合,安全,应用平台和超融合基础设施。Windows Server团队为Windows Server 2019中的这四个主题带来了许多创新。 一、混合云场景: 我们知道迁移到云是一个旅程,而且通常是一种混合方法,它将内部部署和云环境相结合,这对我们的客户来说是有意义的。在云中扩展活动目录,同步文件服务器和备份只是客户今天将其数据中心扩展到公共云的几个示例。此外,混合方法还允许在本地运行的应用程序利用云中的创新优势

Container and injection

﹥>﹥吖頭↗ 提交于 2020-03-23 05:09:03
What is a Container? A standardized unit of software. 容器是软件的标准单元,它打包了代码及其所有依赖项,因此应用程序可以从一个计算环境快速可靠地运行到另一个计算环境。Docker容器映像是一个轻量级、独立、可执行的软件包,包含运行应用程序所需的一切:代码、运行时、系统工具、系统库和设置。 容器图像在运行时变成容器,在Docker容器的情况下,图像在Docker引擎上运行时变成容器。对于基于Linux和Windows的应用程序,无论基础结构如何,集装箱化软件都将始终运行相同的程序。容器将软件与它的环境隔离开来,并确保它在开发和阶段之间存在差异的情况下都能统一工作。 为什么会出现容器的思路? 容器概念始于 1979 年提出的 UNIX chroot,它是一个 UNIX 操作系统的系统调用,将一个进程及其子进程的根目录改变到文件系统中的一个新位置,让这些进程只能访问到这个新的位置,从而达到了进程隔离的目的。其他如1998年的FreeBSD jails、2005年出现的Solaris Zones和OpenVZ,或像是Windows系统2004年就有的Sandboxie机制都属于在操作系统内建立孤立虚拟执行环境的作法,都可称为是Container的技术。直到2013年

第15 章 : 深入解析 Linux 容器

家住魔仙堡 提交于 2020-03-23 04:47:29
深入解析 Linux 容器 今天的内容主要分成以下三个部分 资源隔离和限制; 容器镜像的构成; 容器引擎的构成; 前两个部分就是资源隔离和限制还有容器镜像的构成,第三部分会以一个业界比较成熟的容器引擎为例去讲解一下容器引擎的构成。 容器 容器是一种轻量级的虚拟化技术,因为它跟虚拟机比起来,它少了一层 hypervisor 层。先看一下下面这张图,这张图简单描述了一个容器的启动过程。 最下面是一个磁盘,容器的镜像是存储在磁盘上面的。上层是一个容器引擎,容器引擎可以是 docker,也可以是其它的容器引擎。引擎向下发一个请求,比如说创建容器,然后这时候它就把磁盘上面的容器镜像,运行成在宿主机上的一个进程。 对于容器来说,最重要的是怎么保证这个进程所用到的资源是被隔离和被限制住的,在 Linux 内核上面是由 cgroup 和 namespace 这两个技术来保证的。接下来以 docker 为例,来详细介绍一下资源隔离和容器镜像这两部分内容。 一、资源隔离和限制 namespace namespace 是用来做资源隔离的,在 Linux 内核上有七种 namespace,docker 中用到了前六种。第七种 cgroup namespace 在 docker 本身并没有用到,但是在 runC 实现中实现了 cgroup namespace。 我们先从头看一下: 第一个是 mount

Tomcat源码分析

爷,独闯天下 提交于 2020-03-22 08:27:02
前言:   本文是我阅读了TOMCAT源码后的一些心得。 主要是讲解TOMCAT的系统框架, 以及启动流程。若有错漏之处,敬请批评指教! 建议:   毕竟TOMCAT的框架还是比较复杂的, 单是从文字上理解, 是不那么容易掌握TOMCAT的框架的。 所以得实践、实践、再实践。 建议下载一份TOMCAT的源码, 调试通过, 然后单步跟踪其启动过程。 如果有不明白的地方, 再来查阅本文, 看是否能得到帮助。 我相信这样效果以及学习速度都会好很多! 1. Tomcat的整体框架结构   Tomcat的基本框架, 分为4个层次。   Server和Service   Connector     HTTP     AJP   Container     Engine     Host     Context   Component     manager     logger     loader     pipeline     valve     ...    站在框架的顶层的是Server和Service   Server: 其实就是BackGroud程序, 在Tomcat里面的Server的用处是启动和监听服务端事件(诸如重启、关闭等命令。 在tomcat的标准配置文件:server.xml里面, 我们可以看到“<Server port="8005" shutdown=

Spring扩展:替换IOC容器中的Bean组件 -- @Replace注解

痴心易碎 提交于 2020-03-22 02:13:39
1、背景: 工作中是否有这样的场景?一个软件系统会同时有多个不同版本部署,比如我现在做的IM系统,同时又作为公司的技术输出给其他银行,不同的银行有自己的业务实现(比如登陆验证、用户信息查询等); 又或者你的工程里依赖了公司的二方包A,A又依赖了B...这些jar包里的组件都是通过Spring容器来管理的,如果你想改B中某个类的逻辑,但是又不可能让架构组的人帮你打一份特殊版本的B;怎么办呢?是否可以考虑下直接把Spring容器里的某个组件(Bean)替换成你自己实现的Bean? 2、原理&实现 2.1 先看看Spring开放给我们的扩展 Spring框架超强的扩展性毋庸置疑,我们可以通过BeanPostProcessor来简单替换容器中的Bean。 @Component public class MyBeanPostProcessor implements ApplicationContextAware, BeanPostProcessor { private ApplicationContext applicationContext; @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { this