容器

K8S volume

£可爱£侵袭症+ 提交于 2020-03-25 21:06:36
容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题。首先,当容器崩溃时,kubelet 会重启它,但是容器中的文件将去失--容器以干净的状态(镜像最初的状态)重新启动。其次,在 Pod 中同时运行多个容器时,这些容器之间通常需要共享文件。Kubernetes中的 volume 抽象就很好的解决了这些问题。 背景 Kubernetes 中的卷有明确的寿命 -- 与封装它的 Pod 相同。所以,卷的生命比 Pod 中的所有容器都长,当这个容器重启时数据仍然得以保存。当然,当 Pod 不再存在时,卷也将不复存在。也许更重要的是,Kubernetes 支持多种类型的卷,Pod 可以同时使用任意数量的卷 卷的类型 Kubernetes支持以下类型的卷: awsElasticBlockStore, azureDisk, azureFile, cephfs, csi, downwardAPI, emptyDir, fc, flocker, gcePersistentDisk, gitRepo, glusterfs, hostPath, iscsi, nfs, persistentVolumeClaim, projected, portworxVolume, quobyte, rbd, scaleIO, secret, storageos, vsphereVolume

大会聚焦 | 开源技术盛会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 电信网络,客户和应用的需求都千差万别,有的需要高带宽,有的需要低延迟,有的需要高稳定性。这就需要云计算平台和

IE的特有属性hasLayout和BFC

你。 提交于 2020-03-25 17:37:55
IE多数的bug源于hasLayout属性,这个属性在IE8及以后的浏览器中被抛弃 IE7及以下版本不支持BFC 块级格式化上下文BFC# BFC是W3C CSS 2.1 规范中的一个概念,它决定了元素如何 对其内容进行定位 ,以及与 其他元素的关系和相互作用 。当涉及到可视化布局的时候, Block Formatting Context提供了一个环境,HTML元素在这个环境中按照一定规则进行布局 。一个环境中的元素不会影响到其它环境中的布局。 也可以说BFC就是一个作用范围。可以把它理解成是一个独立的容器,并且这个容器的里box的布局,与这个容器外的毫不相干。 BFC的规则# 1、在创建了 Block Formatting Context 的元素中,其子元素按文档流一个接一个地放置。 垂直方向上他们的起点是一个包含块的顶部 ,两个相邻的元素之间的 垂直距离 取决于 ‘margin’ 特性。 根据 CSS 2.1 8.3.1 Collapsing margins 第一条,两个*相邻的普通流中的块框*在垂直位置的空白边会发生折叠现象。也就是*处于同一个BFC中的两个垂直窗口的margin会重叠。* 根据 CSS 2.1 8.3.1 Collapsing margins 第三条,*生成 block formatting context 的元素不会和在流中的子元素发生空白边折叠。

使用Dockerfile构建镜像

元气小坏坏 提交于 2020-03-25 17:23:54
Dockfile是一种被Docker程序解释的脚本,Dockerfile由一条一条的指令组成,每条指令对应Linux下面的一条命令。Docker程序将这些Dockerfile指令翻译真正的Linux命令。Dockerfile有自己书写格式和支持的命令,Docker程序解决这些命令间的依赖关系,类似于Makefile。Docker程序将读取Dockerfile,根据指令生成定制的image。相比image这种黑盒子,Dockerfile这种显而易见的脚本更容易被使用者接受,它明确的表明image是怎么产生的。有了Dockerfile,当我们需要定制自己额外的需求时,只需在Dockerfile上添加或者修改指令,重新生成image即可,省去了敲命令的麻烦。 一、Dockerfile的书写规则及指令使用方法 Dockerfile的指令是忽略大小写的,建议使用大写,使用 # 作为注释,每一行只支持一条指令,每条指令可以携带多个参数。 Dockerfile的指令根据作用可以分为两种,构建指令和设置指令。构建指令用于构建image,其指定的操作不会在运行image的容器上执行;设置指令用于设置image的属性,其指定的操作将在运行image的容器中执行。 1.1 FROM(指定基础image) 构建指令,必须指定且需要在Dockerfile其他指令的前面

Docker 的网络模式

懵懂的女人 提交于 2020-03-25 15:12:28
一、Bridge模式 当Docker进程启动时,会在主机上创建一个名为docker0的虚拟网桥,此主机上启动的Docker容器会连接到这个虚拟网桥上。虚拟网桥的工作方式和物理交换机类似,这样主机上的所有容器就通过交换机连在了一个二层网络中。从docker0子网中分配一个 IP 给容器使用,并设置 docker0 的 IP 地址为容器的默认网关。在主机上创建一对虚拟网卡veth pair设备,Docker 将 veth pair 设备的一端放在新创建的容器中,并命名为eth0(容器的网卡),另一端放在主机中,以vethxxx这样类似的名字命名,并将这个网络设备加入到 docker0 网桥中。可以通过brctl show命令查看。 bridge模式是 docker 的默认网络模式,不写–net参数,就是bridge模式。使用docker run -p时,docker 实际是在iptables做了DNAT规则,实现端口转发功能。可以使用iptables -t nat -vnL查看。 docker network ls 查看网络 docker run --name test1 -d busybox /bin/bash -c "while true;do echo hello;sleep 10;done" docker run --name test2 -d busybox /bin

spring给容器中注入组件的几种方式

不问归期 提交于 2020-03-25 13:29:21
目录 环境搭建 <!-- https://mvnrepository.com/artifact/org.springframework/spring-context --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.1.5.RELEASE</version> </dependency> spring给容器中注入组件 br/>1.包扫描+组件标注注解(@Controller/@Service/@Repository/@Component)适用于把自己写的类加入组件(默认ID类名首字母小写) 此种方式比较简单就不贴代码了 2.@Bean[导入的第三方包里面的组件] (注意一定要在这个配置类上加上@Configuration) // @Scope指定作用域 // prototype:多实例的:ioc容器启动并不会去调用方法创建对象放在容器中。 // 每次获取的时候才会调用方法创建对象; // singleton:单实例的(默认值):ioc容器启动会调用方法创建对象放到ioc容器中。 // 以后每次获取就是直接从容器(map.get())中拿, // request:同一次请求创建一个实例 // session

容器、应用服务器和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 容器---> 创建 请求

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

戏子无情 提交于 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解决容器间网络隔离。

69道必考spring面试题

旧时模样 提交于 2020-03-24 18:49:40
目录 Spring 概述 依赖注入 Spring beans Spring注解 Spring数据访问 Spring面向切面编程(AOP) Spring MVC Spring 概述 1. 什么是spring? Spring 是个java企业级应用的开源开发框架。Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。Spring 框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。 2. 使用Spring框架的好处是什么? 轻量:Spring 是轻量的,基本的版本大约2MB。 控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们。 面向切面的编程(AOP):Spring支持面向切面的编程,并且把应用业务逻辑和系统服务分开。 容器:Spring 包含并管理应用中对象的生命周期和配置。 MVC框架:Spring的WEB框架是个精心设计的框架,是Web框架的一个很好的替代品。 事务管理:Spring 提供一个持续的事务管理接口,可以扩展到上至本地事务下至全局事务(JTA)。 异常处理:Spring 提供方便的API把具体技术相关的异常(比如由JDBC,Hibernate or JDO抛出的)转化为一致的unchecked 异常。 3.

spring ioc学习笔记

天大地大妈咪最大 提交于 2020-03-24 18:12:52
ioc的核心是DI,目的就是提供一种更简单的机制来设置组件依赖项,并在整个生命周期中管理这些依赖项。需要某些依赖项的组件通常被称为依赖对象,或者在ioc的情况下被称为目标对象。通常ioc可以分解为两种子类型:依赖注入和依赖查找,这些子类型被进一步分解为ioc服务的具体实现。通过这个定义可以清楚的看到,当谈论DI时,通常是在谈论ioc,而当谈论ioc时,并不总是在谈论DI(依赖查找也是ioc的一种形式)。使用依赖查找时,组建必须对依赖项的引用,而使用依赖注入时,依赖项将通过ioc容器注入组件,依赖查找有两种类型:依赖拉取,上下文依赖查找。依赖注入有两种类型:构造函数注入和setter注入。下面一一介绍 依赖拉取 依赖拉取是最常见的ioc类型,在依赖拉取中,根据需要从注册表中提取依赖项。 Spring还提供依赖拉取作为一种检索框架所管理组件的机制: public class DependencyPull { public static void main(String[] args) { ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring/app-context.xml"); MessageRenderer mr = applicationContext.getBean(