容器技术

用 k8s 运行一次性任务 - 每天5分钟玩转 Docker 容器技术(132)

可紊 提交于 2020-02-16 05:23:46
容器按照持续运行的时间可分为两类:服务类容器和工作类容器。 服务类容器通常持续提供服务,需要一直运行,比如 http server,daemon 等。工作类容器则是一次性任务,比如批处理程序,完成后容器就退出。 Kubernetes 的 Deployment、ReplicaSet 和 DaemonSet 都用于管理服务类容器;对于工作类容器,我们用 Job。 先看一个简单的 Job 配置文件 myjob.yml: ① batch/v1 是当前 Job 的 apiVersion 。 ② 指明当前资源的类型为 Job 。 ③ restartPolicy 指定什么情况下需要重启容器。对于 Job,只能设置为 Never 或者 OnFailure 。对于其他 controller(比如 Deployment)可以设置为 Always 。 通过 kubectl apply -f myjob.yml 启动 Job。 kubectl get job 查看 Job 的状态: DESIRED 和 SUCCESSFUL 都为 1 ,表示按照预期启动了一个 Pod,并且已经成功执行。 kubectl get pod 查看 Pod 的状态: 因为 Pod 执行完毕后容器已经退出,需要用 --show-all 才能查看 Completed 状态的 Pod。 kubectl logs 可以查看 Pod

为什么 kubernetes 天然适合微服务 (3)

ぃ、小莉子 提交于 2020-02-16 03:56:04
此文已由作者刘超授权网易云社区发布。 欢迎访问 网易云社区 ,了解更多网易技术产品运营经验 四、Kubernetes 本身就是微服务架构 基于上面这十个设计要点,我们再回来看 Kubernetes,会发现越看越顺眼。 首先 Kubernetes 本身就是微服务的架构,虽然看起来复杂,但是容易定制化,容易横向扩展。 如图黑色的部分是 Kubernetes 原生的部分,而蓝色的部分是网易云为了支撑大规模高并发应用而做的定制化部分。 Kubernetes 的 API Server 更像网关,提供统一的鉴权和访问接口。 众所周知,Kubernetes 的租户管理相对比较弱,尤其是对于公有云场景,复杂的租户关系的管理,我们只要定制化 API Server,对接 Keystone,就可以管理复杂的租户关系,而不用管其他的组件。 在 Kubernetes 中几乎所有的组件都是无状态化的,状态都保存在统一的 etcd 里面,这使得扩展性非常好,组件之间异步完成自己的任务,将结果放在 etcd 里面,互相不耦合。 例如图中 pod 的创建过程,客户端的创建仅仅是在 etcd 中生成一个记录,而其他的组件监听到这个事件后,也相应异步的做自己的事情,并将处理的结果同样放在 etcd 中,同样并不是哪一个组件远程调用 kubelet,命令它进行容器的创建,而是发现 etcd 中,pod 被绑定到了自己这里

为什么 kubernetes 天然适合微服务 (3)

我是研究僧i 提交于 2020-02-16 03:44:17
此文已由作者刘超授权网易云社区发布。 欢迎访问 网易云社区 ,了解更多网易技术产品运营经验 四、Kubernetes 本身就是微服务架构 基于上面这十个设计要点,我们再回来看 Kubernetes,会发现越看越顺眼。 首先 Kubernetes 本身就是微服务的架构,虽然看起来复杂,但是容易定制化,容易横向扩展。 如图黑色的部分是 Kubernetes 原生的部分,而蓝色的部分是网易云为了支撑大规模高并发应用而做的定制化部分。 Kubernetes 的 API Server 更像网关,提供统一的鉴权和访问接口。 众所周知,Kubernetes 的租户管理相对比较弱,尤其是对于公有云场景,复杂的租户关系的管理,我们只要定制化 API Server,对接 Keystone,就可以管理复杂的租户关系,而不用管其他的组件。 在 Kubernetes 中几乎所有的组件都是无状态化的,状态都保存在统一的 etcd 里面,这使得扩展性非常好,组件之间异步完成自己的任务,将结果放在 etcd 里面,互相不耦合。 例如图中 pod 的创建过程,客户端的创建仅仅是在 etcd 中生成一个记录,而其他的组件监听到这个事件后,也相应异步的做自己的事情,并将处理的结果同样放在 etcd 中,同样并不是哪一个组件远程调用 kubelet,命令它进行容器的创建,而是发现 etcd 中,pod 被绑定到了自己这里

Docker三十分钟快速入门(下)

微笑、不失礼 提交于 2020-02-15 23:06:13
一、背景   上篇文章我们进行了Docker的快速入门,基本命令的讲解,以及简单的实战,那么本篇我们就来实战一个真实的项目,看看怎么在产线上来通过容器技术来运行我们的项目,来达到学会容器间通信以及docker-compose学习以及docker网络模型学习的目的。 二、项目描述 创建Todo应用,功能很简单,实现创建Task关联Task分类,以及更新Task的完成状态的功能。 项目运行后的主界面如下:      三、启动项目 因为是使用git管理的maven java项目,所以需要首先在服务器上安装java、maven、git 三大件     传送门: Centos7下Java开发基本环境搭建 Git入门教程传送门: 谈谈分布式版本管理工具Git 接着把github上的项目源码clone到本地 git clone https://github.com/hafizzhang/mysql-spring-boot-todo.git 进入到项目根目录 cd mysql-spring-boot-todo 使用maven命令进行打包项目并且使用docker命令进行build镜像 mvn clean package docker:build 用容器启动mysql 5.6版本 docker run --name mysql -e MYSQL_ROOT_PASSWORD=password -e

为什么 kubernetes 天然适合微服务

梦想的初衷 提交于 2020-02-15 22:49:12
本文由 网易云 发布。 作者:刘超,网易云首席解决方案架构师 最近总在思考,为什么在支撑容器平台和微服务的竞争中,Kubernetes 会取得最终的胜出,事实上从很多角度出发三大容器平台从功能方面来看,最后简直是一摸一样。(可参考 《容器平台选型的十大模式:Docker、DC/OS、K8S 谁与当先?》 ) 经过一段时间的思索,以及采访了从早期就开始实践 Kubernetes 的 网易云 架构师们后,我把反思所得总结为今天的这篇文章。 一、从企业上云的三大架构看容器平台的三种视角 如图所示,企业上云的三大架构为 IT 架构、应用架构和数据架构,在不同的公司,不同的人、不同的角色,关注的重点不同。 对大部分的企业来讲,上云的诉求是从 IT 部门发起的,发起人往往是运维部门,他们关注计算、网络、存储,试图通过云计算服务来减轻 CAPEX 和 OPEX。 有的公司有 ToC 的业务,因而累积了大量的用户数据,公司的运营需要通过这部分数据进行大数据分析和数字化运营,因而在这些企业里面往往还需要关注数据架构。 从事互联网应用的企业,往往首先关注的是应用架构,是否能够满足终端客户的需求,带给客户良好的用户体验。业务量上往往会有短期内出现爆炸式增长的现象,因而关注高并发应用架构,并希望这个架构可以快速迭代,从而抢占风口。 在容器出现之前,这三种架构往往通过虚拟机云平台的方式解决。当容器出现之后

Docker

若如初见. 提交于 2020-02-15 18:32:03
什么是容器 容器技术已经成为应用程序封装和交付的核心技术 容器技术的核心有以下几个内核技术组成: Cgroups( Control Groups)-资源管理 NameSpace-进程隔离 SELinux安全 由于是在物理机上实施隔离,启动一个容器,可以像启动一个进程一样快速 什么是Docker Docker是完整的一套容器管理系统 Docker提供了一组命令,让用户更加方便直接地使 用容器技术,而不需要过多关心底层内核技术 Docker特性 1)Docker优点 相比于传统的虚拟化技术,容器更加简洁高效 传统虚拟机需要给每个VM安装操作系统 容器使用的共享公共库和程序 2)Docker缺点 容器的隔离性没有虚拟化强 共用Linux内核,安全性有先天缺陷 SELinux难以驾驭 监控容器和容器排错是挑战 部署Docker 1)环境准备 需要64位操作系统 至少RHEL65以上的版本,强烈推荐RHEL7 卸载firewalld 2)安装Docker docker虚拟机配置 2核,1G内存,4台,能访问外网 192.168.1.100repo(yum服务器) 192.168.1.30 registry(容器仓库) 192.168.1.31 docker1(容器主机1) 192.168.1.32 docker2(容器主机2) 配置yum源 docker软件包位于光盘Rhl7 -extras

Kubernetes 简介

天大地大妈咪最大 提交于 2020-02-15 15:18:55
简称k8s Kubernetes为什么叫k8s呢,中间ks有8个字母。类似i18n,i和n,18为中间的字符数是“国际化”的简称。k8s是建立在容器引擎之上的,但容器不一定是docker。 现在又出来一个新产品k3s,它是容器管理软件提供商Rancher Labs(以下简称Rancher)宣布推出轻量级Kubernetes发行版 K3S 。主要用于一些小型的开发/生产环境、边缘计算节点甚至性能极其有限的设备(比如树莓派3)。 这所有的技术都是为业务服务的。 那k8s到底是解决什么业务问题的? 微服务开发三大指标 高可用,高性能,高并发 高性能方案 RPC通信,对外rest,对内RPC Kyro高速序列化 HikariCP连接池,号称最快的连接池 SQL优化 Redis缓存 JVM优化 GC优化 高并发方案 垂直扩展 水平扩展 负载均衡 集群 高并发这些说白了就是烧钱。 高可用方案 那高可用是什么。就是一直可以用,达到99.999999%。一年允许宕机的时间大概是32秒左右,这个叫高可用。Kubernetes就是高可用方案里面的一个环节。 怎么做到高可用呢? 实现崩溃恢复,解决单点故障问题。 假设我们有2台Tomcat->1, 挂掉一个。那这个怎么办,让我们手动去重启吗?我们肯定是想要自动重启。Kubernetes就提供了这个功能,自动重启。高可用肯定想实现自动重启这个效果。

Docker 学习笔记(一)

≯℡__Kan透↙ 提交于 2020-02-15 09:38:31
0x00 前言 一直使用过docker,但并不是太了解,于是开始学习了解一下 0x01 docker简介 1、什么是容器? 一种虚拟化的方案 操作系统级别的虚拟化 只能运行相同或相似内核的操作系统 依赖于Linux内核特性: Namespace和Cgroups (Control Group) 2、容器技术有哪些优点? 磁盘占用空间少 提供更多的服务能力和服务更多的用户 3、什么是Docker? Docker是能将应用程序自动部署到容器的开源引擎。 使用Go语言编写(Go语言开源引擎) 项目地址 基于Apache2.0开源授权协议发行 docker的特别之处: docker在虚拟化的容器执行环境中增加了一个应用部署引擎。该引擎目标提供一个轻量、快速的环境。 方便从开发者环境->测试环境->生产环境 4、Docker有哪些特点?(Docker的目标) 提供简单轻量的建模方式 职责的逻辑分离 快速高效的开发生命周期 鼓励使用面向服务的架构 5、Docker的使用场景 使用Docker容器开发、测试、部署服务 创建隔离的运行环境 搭建测试环境 构建多用户的平台即服务(PaaS)基础设施 提供软件即服务(SaaS)应用程序 高性能、超大规模的宿主机部署 6、Docker的基本组成 Docker Client 客户端 Docker Daemon 守护进程 Docker Image 镜像

Docker

寵の児 提交于 2020-02-15 05:07:55
简介 Docker是一个开源的应用容器引擎;是一个轻量级容器技术。 Docker支持将软件编译成一个镜像;然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像;运行中的这个镜像称为容器,容器启动是非常快速的。 核心概念 docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上); docker客户端(Client):连接docker主机进行操作; docker仓库(Registry):用来保存各种打包好的软件镜像; docker镜像(Images):软件打包好的镜像;放在docker仓库中; docker容器(Container):镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用 使用Docker的步骤: 1)、安装Docker 2)、去Docker仓库找到这个软件对应的镜像; 3)、使用Docker运行这个镜像,这个镜像就会生成一个Docker容器; 4)、对容器的启动停止就是对软件的启动停止; 安装Docker 安装linux虚拟机 1)、VMWare、VirtualBox(安装); 2)、导入虚拟机文件centos7-atguigu.ova; 3)、双击启动linux虚拟机;使用 root/ 123456登陆 4)、使用客户端连接linux服务器进行命令操作; 5)、设置虚拟机网络;桥接网络=选好网卡=

李晓菁201771010114《面向对象程序设计(java)》第十二周学习总结

元气小坏坏 提交于 2020-02-14 16:49:41
一:理论部分 1.(1) 用户界面(User Interface)用户与计算机系统(各种程序)交互的接口 (2)图形用户界面(Graphical User Interface)以图形方式呈现的用户界面 2.AWT:Java 的抽象窗口工具箱( Abstract WindowToolkit, AWT)包含在java.awt包中,它提供了许多用来设计GUI的组件类和容器类。 . AWT库处理用户界面元素的方法:把图形元素的创建和行为委托给本地GUI工具箱进行处理。 . 应用AWT编写依赖于本地用户界面元素GUI会暴露出一些缺陷。例如,菜单、滚动条和文本域这些 用户界面元素,在不同的平台上,操作行为上存在一些微妙的差异。 3.Swing: Swing用户界面库是非基于对等体的GUI工具箱。  Swing具有更丰富并且更方便的用户界面元素集合。  Swing对底层平台的依赖很少,因此与平台相关的bug很少。  Swing会带来交叉平台上的统一视觉体验。  Swing类库被放在javax.swing包里。 4.AWT与Swing的关系 大部分AWT组件都有其Swing的等价组件。  Swing组件的名字一般是在AWT组件名前面添加一个字母“J”,如:JButton,JFrame,JPanel等。 二..创建框架 1.组件:构成图形用户界面的元素,拿来即用用图形表示(能在屏幕上显示