容器技术

Docker容器跨主机通信--overlay网络

匿名 (未验证) 提交于 2019-12-02 23:56:01
一、Docker主机间容器通信的解决方案    Docker网络驱动 Overlay: 基于VXLAN封装实现Docker原生Overlay网络 Macvlan: Docker主机网卡接口逻辑上分为多个子接口,每个子接口标识一个VLAN。容器接口直接连接Docker主机 网卡接口: 通过路由策略转发到另一台Docker主机    第三方网络项目    隧道方案     -- Flannel: 支持UDP和VLAN封装传输方式 -- Weave: 支持UDP(sleeve模式)和 VXLAN(优先fastdb模式) -- OpenvSwitch: 支持VXLAN和GRE协议 路由方案 Calico: 支持BGP协议和IPIP隧道。每台宿主机作为虚拟路由,通过BGP协议实现不同主机容器间通信  回到顶部 二、Docker Overlay Network   Overlay网络是指在不改变现有网络基础设施的前提下,通过某种约定通信协议,把二层报文封装在IP报文之上的新的数据格式。这样不但能够充分利用成熟的IP路由协议进程数据分发;而且在Overlay技术中采用扩展的隔离标识位数,能够突破VLAN的4000数量限制支持高达16M的用户,并在必要时可将广播流量转化为组播流量,避免广播数据泛滥。   因此,Overlay网络实际上是目前最主流的容器跨节点数据传输和路由方案。   

Spring基础(一)

匿名 (未验证) 提交于 2019-12-02 23:55:01
Spring是什么 ? Spring 是一个轻量级的 IoC 和 AOP 容器框架。是为 Java 应用程序提供基础性服务的一套框架,目的是用于简化企业应用程序的开发,它使得开发者只需要关心业务需求。常见的配置方式有三种:基于 XML 的配置、基于注解的配置、基于 Java 的配置。 使用Spring框架的好处是什么? 方便解耦,简化开发 通过 Spring 提供的 IoC 容器,可以将对象间的依赖关系交由 Spring 进行控制,避免硬编码所造成的过度程序耦合。 spring 属于低侵入式设计,代码的污染极低。 spring 的 DI 机制将对象之间的依赖关系交由框架处理,减低组件的耦合性; AOP 编程的支持 通过 Spring 的 AOP 功能,支持将一些通用任务,如安全、事务、日志、权限等进行集中式管理,从而提供更好的复用。方便进行面向切面的编程,许多不容易用传统 OOP 实现的功能可以通过 AOP 轻松应付。 声明式事务的支持 可以将我们从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活的进行事务的管理,提高开发效率和质量。 集成各种优秀框架 spring 对于主流的应用框架提供了集成支持。 Spring由哪些模块组成 ? Spring Core:核心类库,提供IOC服务; Spring Context:提供框架式的Bean访问方式,以及企业级功能(JNDI

spring进一步学习---ioc

匿名 (未验证) 提交于 2019-12-02 23:49:02
1.IOC和ID的区别:    控制反转 (Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。 其中 最常见的方 式叫做依赖注入(Dependency Injection,简称 DI),还有一种方式叫“依赖查找”(Dependency Lookup)--->百度:JNDI 解释: IOC是程序所需要达到的目标   ID是实现IOC的技术 手段    有点类似于orm->mabatis 2.依赖注入 (1)什么是依赖   A类中有个属性为B类,则称A依赖B 3.为什么要使用springioc   在日常程序开发过程当中,我们推荐面向抽象编程,面向抽象编程会产生类的依赖,当然如果你够强大可以自己写一个管理的容器,但是既然 spring以及实现了,并且 spring如此优秀,我们仅仅需要学习 spring框架便可。 当我们有了一个管理对象的容器之后,类的产生过程也交给了容器,至于我们自己的app则可以不需要去关系这些对象的产生了。 场景: 1.我有N个类维护着List接口的实现这么一个属性,在传统情况下都是List list = new ArrayList();倘若现在业务需求发生了变化,需要变为List list = new LinkedList();name就需要修改N个类, 但是在有spring的情况下

Dock学习(一):容器介绍

匿名 (未验证) 提交于 2019-12-02 23:49:02
一、什么是容器   1、容器是一种轻量级、可移植、自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行。开发人员在自己的笔记本上创建并测试好的容器,无需任何修改就能够在生产系统的虚拟机、或物理服务器、或公有云主机上运行。   2、容器与虚拟机的异同:      容器与虚拟机都是为应用提供封装和隔离。      容器由两部分组成:     1)应用程序本身;     2)依赖部分,如应用程序需要的组件库或其他软件;      容器在宿主操作系统的用户空间中运行,与操作系统的其他进程隔离,这一点显著区别于虚拟机。     传统的虚拟化技术,比如VMWare、KVM,目标均是创建完整的虚拟机。为了运行应用程序,除了部署应用自身及其依赖,还需要安装整个操作系统。     两者区别如下图所示:          由图中对比可知,由于所有的容器共享一个宿主操作系统,这使得容器在体积上要比虚拟机小很多。另外,启动容器不需要启动整个操作系统,所以容器部署和启动速度更快,开销也更小,也更容易迁移。   在谈论为什么使用容器之前,先看一下之前为什么用不着容器。之前的系统,几乎所有的系统均采用三层架构就可以很好的解决使用需求。而当今的系统,需要使用更多的服务,比如MQ、缓存、数据库来构建和组装应用。而且应用程序很可能被部署到不同的环境,比如虚拟服务器、私有云、公有云上。   所以

k8s管理pod资源对象

匿名 (未验证) 提交于 2019-12-02 23:48:02
现代的容器技术被设计用来运行单个进程时,该进程在容器中pid名称空间中的进程号为1,可直接接收并处理信号,于是,在此进程终止时,容器即终止退出。若要在一个容器中运行多个进程,则需要为这些进程提供一个类似于linux操作系统init进程的管控类进程,以树状结构完成多进程的生命周期管理。绝大多数场景中都应该于一个容器中仅运行一个进程,它将日志信息直接输出至容器的标准输出。不过,分别运行于各自容器的进程之间无法实现基于ipc的通信机制,此时,容器间的隔离机制对于依赖于此类通信方式的进程来说却又成了阻碍。pod资源抽象正是用来解决此类问题的组件。pod对象是一组容器的集合,这些容器共享network、uts及ipc名称空间,因此具有相同的域名、主机名和网络接口,并可通过ipc直接通信。为一个pod对象中的各容器提供网络名称空间等共享机制的是底层基础容器pause。 尽管可以将pod类比为物理机或vm,但一个pod内通常仅应该运行一个应用,除非多个进程间有密切关系。不过,有些场景要求必须于同一pod中同时运行多个容器,此时,这些分布式应用必须遵循某些最佳实践机制或基本准则。事实上,k8s并非期望成为一个管理系统,而是一个支持这些最佳实践的向开发人员或管理人员提供更高级别服务的系统。分布式系统设计通常包含以下几种模型: 1、sidecar pattern(边车模型或挎斗模型)

1.docker容器技术基础入门

本秂侑毒 提交于 2019-12-02 23:47:36
内容来自: https://www.cnblogs.com/marility/p/10215062.html https://blog.51cto.com/gouyc/2310785?source=dra 一、虚拟化实现 虚拟机的目的之一:进行隔离。(隔离UTS IPC Mount PID User Network) Chroot CPU是可压缩性资源,内存是非可压缩性资源。 1、主机级虚拟化 Type-I: 在宿主机上直接安装Virtual machine Manager(Hypervisor),不需要在宿主机上安装操作系统 -- xen、ESX/ESXI Type-II: 需要基于宿主机的操作系统之上安装Virtual Machine Manager -- VMware Workstation、kvm、VirtualBox 2、容器级别虚拟化 此实现不在为每一个虚拟机创建单独的内核,而是通过在宿主机的内核上将6种资源通过内核机制(namespaces名称空间)隔离出来,每一个namespace是一个单独的容器(虚拟机)。至今为止,整个linux领域的容器技术,就是靠内核级的6个namespaces、chroot和Cgroups共同实现。 容器虚拟化,有别于主机虚拟化,其存在宿主机os,但其与主机级别虚拟化的type-II不一样,并非进行内核的虚拟化

kubeadm最简安装Kubernetes

匿名 (未验证) 提交于 2019-12-02 23:35:02
一、Kubernetes简介 Kubernetes(简称K8S)是开源的容器集群管理系统,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。Kubernetes既是一款容器编排工具,也是全新的基于容器技术的分布式架构领先方案。在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等功能,提高了大规模容器集群管理的便捷性。 K8S集群中有管理节点与工作节点两种类型。管理节点主要负责K8S集群管理,集群中各节点间的信息交互、任务调度,还负责容器、Pod、NameSpaces、PV等生命周期的管理。工作节点主要为容器和Pod提供计算资源,Pod及容器全部运行在工作节点上,工作节点通过kubelet服务与管理节点通信以管理容器的生命周期,并与集群其他节点进行通信。 二、环境准备 Kubernetes支持在物理服务器或虚拟机中运行,本次使用虚拟机准备测试环境,硬件配置信息如表所示: IP地址 节点角色 CPU Memory Hostname 磁盘 10.10.10.10 master >=2c >=2G master sda、sdb 10.10.10.11 worker >=2c >=2G node1 sda、sdb 10.10.10.12 worker >=2c >=2G node2 sda、sdb 注:在所有节点上进行如下操作 1

Docker常用命令

匿名 (未验证) 提交于 2019-12-02 23:06:17
docker 显示所有docker命令 docker version 显示 docker 版本信息 docker info 显示 docker 所有系统相关信息 docker command --help 显示docker命令帮助信息 一、镜像(image) 1、列出本地已有的镜像 docker images [OPTIONS] [REPOSITORY[:TAG]] -a 列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层); --digests 显示镜像的摘要信息; -f 显示满足条件的镜像; --format 指定返回值的模板文件; --no-trunc 显示完整的镜像信息; -q 只显示镜像ID。 2、从镜像仓库中拉取或者更新指定镜像 docker pull [OPTIONS] NAME[:TAG|@DIGEST] -a 拉取所有 tagged 镜像 --disable-content-trust 忽略镜像的校验,默认开启 3、将本地的镜像上传到镜像仓库 docker push [OPTIONS] NAME[:TAG] --disable-content-trust 忽略镜像的校验,默认开启 4、除本地一个或多少镜像 docker rmi [OPTIONS] IMAGE IMAGE2... -f 强制删除; --no-prune 不移除该镜像的过程镜像,默认移除;

【容器魔方解读】AWS Re:Invent 2018大会

匿名 (未验证) 提交于 2019-12-02 23:03:14
每年云计算领域技术与商业风向标之一的AWS Re:Invent大会上周在美国拉斯×××召开,如往届一样,AWS密集发布了上百项的新产品或新技术。随着国内近两年云计算尤其是公有云的普及度越来越高,国内各技术媒体和开发者对AWS Re:Invent高度关注,很多信息几乎是与美国无时差地传递到国内。前期容器魔方的技术文章让大家印象深刻,很多粉丝要求我们从自己的视角谈谈对AWS Re:Invent大会的理解,因此我们在大会结束后第一时间给出完整解读。 AWS每年发布的新产品中,最受关注的领域无疑是传统的云计算基础设施与数据库,这是AWS目前领先所有对手的领域。 此次发布的ARM架构的EC2 A1实例、100G网络的EC2 C5n实例,支持Windows NTFS、Lustre协议的新文件存储服务,云下与云上数据同步的DataSync,超低成本的冷存储S3 Glacier Deep Archive,基于智能路由的全球加速网络Global Accelerator,Serverless数据库Aurora与DynanoDB,新的时序数据库Timestream,区块链数据库QLDB等等,无不展现了AWS在基础设施层与基础数据中间件的强大实力。特别是ARM架构的服务器,自从三星、英伟达、高通逐渐放弃这一领域后, AWS宣布ARM架构实例的上线对该领域的生态有着重大推进作用。 在AI领域

Centos7 Docker安装部署Rancher

匿名 (未验证) 提交于 2019-12-02 22:56:40
Rancher简介 Rancher 是一个开源的企业级容器管理平台。通过Rancher,企业再也不必自己使用一系列的开源软件去从头搭建容器服务平台。Rancher提供了在生产环境中使用的管理Docker和Kubernetes的全栈化容器部署与管理平台。主要包括服务管理,公有云节点管理,支持第三方用户权限管理,应用商店,api很是灵活,只是文档较少,让你更多的去参考 官方文档 。 Rancher结构 Rancher由以下四个部分组成: 1、基础设施编排 Rancher可以使用任何公有云或者私有云的Linux主机资源。Linux主机可以是虚拟机,也可以是物理机。Rancher仅需要主机有CPU,内存,本地磁盘和网络资源。从Rancher的角度来说,一台云厂商提供的云主机和一台自己的物理机是一样的。 Rancher为运行容器化的应用实现了一层灵活的基础设施服务。Rancher的基础设施服务包括网络, 存储, 负载均衡, DNS和安全模块。Rancher的基础设施服务也是通过容器部署的,所以同样Rancher的基础设施服务可以运行在任何Linux主机上。 2、容器编排与调度 很多用户都会选择使用容器编排调度框架来运行容器化应用。Rancher包含了当前全部主流的编排调度引擎,例如Docker Swarm, Kubernetes, 和Mesos