容器技术

JavaWeb — Servlet(Server Applet)

拥有回忆 提交于 2019-12-01 17:25:45
Servlet ( Server Applet) 全称Java Servlet,未有中文译文。是用Java编写的服务器端程序。 其主要功能在于交互式地浏览和修改数据,生成动态Web内容。 狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。 Servlet运行于支持Java的应用服务器中。从实现上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。 Servlet的工作模式 : ● 接收请求数据(客户端发送请求至服务器) ● 处理请求(服务器启动并调用Servlet,Servlet根据客户端请求生成响应内容并将其传给服务器) ● 完成响应(服务器将响应返回客户端) Servlet API概览: ① javax.servlet;其中包含定义Servlet和Servlet容器之间契约的类和接口。 ② javax.servlet.http;其中包含定义HTTP Servlet 和Servlet容器之间的关系。 ③ javax.servlet.annotation;其中包含标注Servlet,Filter,Listener的标注。它还为标注元件定义数据。 ④ javax.servlet.descriptor

Kubernetes+Docker+Istio 容器云实践

人盡茶涼 提交于 2019-12-01 17:21:52
随着社会的进步与技术的发展,人们对资源的高效利用有了更为迫切的需求。近年来,互联网、移动互联网的高速发展与成熟,大应用的微服务化也引起了企业的热情关注,而基于Kubernetes+Docker的容器云方案也随之进入了大众的视野。开普勒云是一个基于Kubernetes+Docker+Istio的微服务治理解决方案。 一、Microservices 1.1 解决大应用微服务化后的问题 现在各大企业都在谈论微服务,在微服务的大趋势之下技术圈里逢人必谈微服务,及微服务化后的各种解决方案。 1.2 当我们在讨论微服务的时候我们在讨论什么? 使用微服务架构有很多充分的理由,但天下没有免费的午餐,微服务虽有诸多优势,同时也增加了复杂性。团队应该积极应对这种复杂性,前提是应用能够受益于微服务。 1.2.1 如何微服务化的问题 微服务要如何拆分 业务API规则 数据一致性保证 后期可扩展性考虑 当然这不是本文主要讨论的问题,我不讲微服务具体要如何拆分,每个企业每个应用的情况都不太一样,适合自己的方案就是最好的拆分方案。我们主要来解决微服务化后所带来的一些问题。 1.2.2 微服务化后带来的问题 环境一致性 如何对资源快速分配 如何快速度部署 怎么做基本监控 服务注册与发现 负载均衡如何做 以上都是大应用微服务化所需要解决的基础问题,如果还按照传统的方式使用虚拟机来实现,资源开支将会非常大

docker笔记

微笑、不失礼 提交于 2019-12-01 16:24:26
简介 Docker 是一个开源的应用容器引擎;是一个轻量级容器技术; docker本身不是容器,是创建容器的工具,是应用容器引擎,将应用程序自动部署到容器的开源引擎。 容器技术充分利用操作系统本身已有的机制和特性,可以实现远超传统虚拟机的轻量级虚拟化。 容器有效地将由单个操作系统管理的资 源划分到孤立的组中,以更好地孤立的组之间平衡有冲突的资 源使用需求。 docker的目标特点 简单轻量,快速开发,具备可移植性,开发、测试、生产都能使用相同的环境。 核心概念 docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上) docker客户端(Client):连接docker主机进行操作 docker仓库(Registry):用来保存各种打包好的软件镜像; docker镜像(Images):软件打包好的镜像;放在docker仓库中; docker容器(Container):镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用 使用Docker的步骤: 安装Docker 去Docker仓库找到这个软件对应的镜像; 使用Docker运行这个镜像,这个镜像就会生成一个Docker容器; 对容器的启动停止就是对软件的启动停止; 3、安装Docker 1、检查内核版本,必须是3.10及以上 uname ‐r 2、安装docker yum

Kubernetes+Docker+Istio 容器云实践

风格不统一 提交于 2019-12-01 16:06:23
随着社会的进步与技术的发展,人们对资源的高效利用有了更为迫切的需求。近年来,互联网、移动互联网的高速发展与成熟,大应用的微服务化也引起了企业的热情关注,而基于Kubernetes+Docker的容器云方案也随之进入了大众的视野。开普勒云是一个基于Kubernetes+Docker+Istio的微服务治理解决方案。 一、Microservices 1.1 解决大应用微服务化后的问题 现在各大企业都在谈论微服务,在微服务的大趋势之下技术圈里逢人必谈微服务,及微服务化后的各种解决方案。 1.2 当我们在讨论微服务的时候我们在讨论什么? 使用微服务架构有很多充分的理由,但天下没有免费的午餐,微服务虽有诸多优势,同时也增加了复杂性。团队应该积极应对这种复杂性,前提是应用能够受益于微服务。 1.2.1 如何微服务化的问题 微服务要如何拆分 业务API规则 数据一致性保证 后期可扩展性考虑 当然这不是本文主要讨论的问题,我不讲微服务具体要如何拆分,每个企业每个应用的情况都不太一样,适合自己的方案就是最好的拆分方案。我们主要来解决微服务化后所带来的一些问题。 1.2.2 微服务化后带来的问题 环境一致性 如何对资源快速分配 如何快速度部署 怎么做基本监控 服务注册与发现 负载均衡如何做 以上都是大应用微服务化所需要解决的基础问题,如果还按照传统的方式使用虚拟机来实现,资源开支将会非常大

建设DevOps统一运维监控平台,先从日志监控说起

馋奶兔 提交于 2019-12-01 14:34:39
前言 随着Devops、云计算、微服务、容器等理念的逐步落地和大力发展,机器越来越多,应用越来越多,服务越来越微,应用运行基础环境越来多样化,容器、虚拟机、物理机不一而足。 面对动辄几百上千个虚拟机、容器,数十种要监控的对象,现有的监控系统还能否支撑的住?来自于容器、虚拟机、物理机的应用日志、系统服务日志如何采用同一套方案快速、完整的收集和检索?怎样的架构、技术方案才更适合如此庞大繁杂的监控需求呢?本文主要从以下几个方面来分享下笔者在日志监控方面的一些经验。 目录 一、DevOps浪潮下带来的监控挑战 二、统一监控平台架构解析 三、日志监控的技术栈 四、日志监控经典方案ELK 五、微服务+容器云背景下的日志监控实践Journald+fluentd+elasticsearch 六、如何选择适合自己的日志监控方案? 一、DevOps浪潮下带来的监控挑战 现在Devops、云计算、微服务、容器等理念正在逐步落地和大力发展,机器越来越多,应用越来越多,服务越来越微,应用运行基础环境越来多样化,容器,监控面临的压力越来越大。挑战主要有: 监控源的多样化挑战 业务、应用、网络设备、存储设备、物理机、虚拟机、容器、数据库、各种系统软件等等,需要监控的对象越来越多,指标也多种多样,如何以一个统一的视角,监控到所有的数据? 海量数据的分析处理挑战 设备越来越多,应用越来越多

Docker入门

為{幸葍}努か 提交于 2019-12-01 13:47:57
Docker简介 Docker是一种虚拟容器技术,是伴随PaaS(平台即服务)产生的,常用的虚拟化容器技术有两种:全虚拟化和操作系统虚拟化(OS)。VMvare workstation是全虚拟化的实现,而Docker是基于操作系统虚拟化技术的一种。 Docker与VMvare对比,有显著的优势: 启动速度快。Docker容器的启动操作在秒级就可以完成。 系统消耗资源低。一台Linux机器可以运行上千个Docker容器。 迁移扩展更便捷。Docker比VMvare占更少的磁盘空间,对安装好的Docker容器迁移更便捷,且兼容性好,支持物理机、云平台等几乎任意平台。 Docker核心概念 Docker包含四个基本概念:镜像(Image)、容器(Container)、仓库(Repository)、仓库注册中心(Registry) Docker镜像是一个模板,可以用来创建Docker容器,容器是从镜像创建的运行实例,它们间的关系类似于Java中的类和对象,Docker通过容器运行应用。 Registry是存放镜像的地方,Repository是Registry中对镜像进行分类存放的地方。即一个Registry中会有多个Repository,而一个Repository中会存放多个不同tag的Image。 Registry分为公有和私有两种,Docker默认的Registry是Dokcer

10分钟看懂Docker和K8S

自古美人都是妖i 提交于 2019-12-01 13:21:30
10分钟看懂Docker和K8S https://www.jianshu.com/p/f1f94c6968f5 在容器技术之前,业界的网红是虚拟机。虚拟机技术的代表,是VMWare和OpenStack 虚拟机,就是在你的操作系统里面,装一个软件,然后通过这个软件,再模拟一台甚至多台“子电脑”出来。 Docker本身并不是容器,它是创建容器的工具,是应用容器引擎。 第一句,是“Build, Ship and Run”。 第二句口号就是:“Build once,Run anywhere(搭建一次,到处能用)”。 Docker技术的三大核心概念,分别是: 镜像(Image) 容器(Container) 仓库(Repository) 我刚才例子里面,那个放在包里的“镜像”,就是Docker镜像。而我的背包,就是Docker仓库。我在空地上,用魔法造好的房子,就是一个Docker容器。 说白了,这个Docker镜像,是一个特殊的文件系统。它除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(例如环境变量)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。 负责对Docker镜像进行管理的,是Docker Registry服务(类似仓库管理员) K8S,就是基于容器的集群管理平台,它的全称,是kubernetes。 一个K8S系统

分布式架构知识体系

馋奶兔 提交于 2019-12-01 12:21:15
作者 | 晓土 阿里巴巴高级工程师 姊妹篇阅读推荐 : 《 云原生时代,分布式系统设计必备知识图谱(内含22个知识点) 》 导读: 本文力求从分布式基础理论、架构设计模式、工程应用、部署运维、业界方案这几大方面,介绍基于 MSA(微服务架构)的分布式知识体系大纲,从而对 SOA 到 MSA 进化有着立体的认识;从概念上和工具应用上更近一步了解微服务分布式的本质,身临其境的感受如何搭建全套微服务架构的过程。 关注“阿里巴巴云原生”公众号,回复“ 分布 ”,即可下载分布式系统及其知识体系清晰大图! 随着移动互联网的发展和智能终端的普及,计算机系统早就从单机独立工作过渡到多机器协作,集群按照分布式理论构建出庞大复杂的应用服务,在分布式的基础上正进行一场云原生的技术革命,彻底打破传统的开发方式,解放了新一代的生产力。 分布式系统知识体系大图 关注“阿里巴巴云原生”公众号,回复“ 分布 ”,即可下载分布式系统及其知识体系清晰大图! 基础理论 SOA 到 MSA 的进化 SOA 面向服务架构 由于业务发展到一定程度后,需要对服务进行解耦,进而把一个单一的大系统按逻辑拆分成不同的子系统,通过服务接口来通讯。面向服务的设计模式,最终需要总线集成服务,而且大部分时候还共享数据库,出现单点故障时会导致总线层面的故障,更进一步可能会把数据库拖垮,所以才有了更加独立的设计方案的出现。 MSA 微服务架构

Kubernetes容器调度策略

霸气de小男生 提交于 2019-12-01 11:44:22
容器编排中一个重要且复杂的方面是调度应用程序容器。如何将容器适当放置到可用的共享基础架构资源上,是在最佳计算资源使用情况下实现最大性能的关键所在。 Cattle是Rancher 1.6的默认编排引擎,提供了各种调度功能来有效地放置服务: https://rancher.com/docs/rancher/v1.6/en/cattle/scheduling/#scheduling-services 随着基于Kubernetes的Rancher 2.0版本的发布,Rancher现在使用原生的Kubernetes调度。在本文中,我们将看看Rancher 2.0中可用的调度方法与Cattle的调度的比较。 节点调度 根据原生的Kubernetes行为,默认情况下,Rancher 2.0工作负载中的pod将分布在可调度且具有足够可用容量的节点(主机)上。但就像1.6版本一样,Rancher 2.0也有助于: 在特定节点上运行所有pod 使用标签进行节点调度 以下是1.6 UI中的调度方式。Rancher允许您在特定主机上运行所有容器,指定硬/软主机标签,或在部署服务时使用亲和性/反亲和性规则。 以下是Rancher 2.0中对应的节点调度UI,它在部署工作负载时提供相同的功能。 Rancher使用底层的原生Kubernetes构造来指定节点的亲和性/反亲和性

史上最全docker基础知识汇总

风格不统一 提交于 2019-12-01 11:43:12
正文 Docker常用命令 run docker run [OPTIONS] IMAGE [COMMAND] [ARG...] -e设置环境变量;-e username=zhj --name为容器指定一个名称;--name=zhj -p指定端口映射,格式为:主机(宿主)端口:容器端口 -p 80:8080 -t为容器重新分配一个伪输入终端,通常与 -i 同时使用; -i以交互模式运行容器,通常与 -t 同时使用; -d后台运行容器,并返回容器ID; -v宿主机目录:容器目录。将宿主机目录挂载到容器内。 docker cp 复制容器内的文件到宿主机 docker start 启动一个或多个已经被停止的容器 docker stop 停止一个运行中的容器 docker restart 重启容器 docker rm 删除容器 docker pause 暂停容器中所有的进程; docker unpause 恢复容器中所有的进程; docker exec : 在运行的容器中执行命令 docker exec -it mynginx /bin/sh /root/runoob.sh docker logs 获取容器的日志; docker ps 列出UP的容器;docker ps -a列出所有容器。包括Exited等状态的容器; docker top 查看容器中运行的进程信息,支持 ps 命令参数;