容器

后端架构

拈花ヽ惹草 提交于 2020-01-14 18:02:44
资源说明 用途说明 成本评估 freeipa集群 统一身份验证 214.5 racnher集群 多集群的k8s管理 1590.75 日志集群 nginx+业务日志 3240 存储集群 用于支撑测试环境与运维系统 2295 测试环境k8s集群 测试环境+运维系统 4335 线上环境k8s集群 支撑线上业务 4335 zk kafka集群 支撑线上业务 3930.75 线上mysql redis 支撑线上业务 2310.75 FreeIPA是一款集成的安全信息管理解决方案。FreeIPA包含Linux (Fedora),389 Directory Server MIT Kerberos, NTP, DNS, Dogtag (Certificate System)等等身份,认证和策略功能。 Rancher是一个开源的企业级容器管理平台。通过Rancher,企业再也不必自己使用一系列的开源软件去从头搭建容器服务平台。Rancher提供了在生产环境中使用的管理Docker和Kubernetes的全栈化容器部署与管理平台。 kubernetes(通常称为k8s)用于自动部署、扩展和管理容器化应用程序的开源系统。它旨在提供“跨主机集群的自动部署、扩展以及运行应用程序容器的平台”。支持一系列容器工具 ,包括Docker等 Kafka后端通信 一个消息系统负责将数据从一个应用传递到另外一个应用

kubernetes pod hook

会有一股神秘感。 提交于 2020-01-14 17:55:25
Pod hook Pod hook(钩子)是由Kubernetes管理的kubelet发起的,当容器中的进程启动前或者容器中的进程终止之前运行,这是包含在容器的生命周期之中。可以同时为Pod中的所有容器都配置hook。 Hook的类型包括两种: exec:执行一段命令 HTTP:发送HTTP请求。 参考下面的配置: apiVersion: v1 kind: Pod metadata: name: lifecycle-demo spec: containers: - name: lifecycle-demo-container image: nginx lifecycle: postStart: exec: command: ["/bin/sh", "-c", "echo Hello from the postStart handler > /usr/share/message"] preStop: exec: command: ["/usr/sbin/nginx","-s","quit"] 在容器创建之后,容器的Entrypoint执行之前,这时候Pod已经被调度到某台node上,被某个kubelet管理了,这时候kubelet会调用postStart操作,该操作跟容器的启动命令是在异步执行的,也就是说在postStart操作执行完成之前,kubelet会锁住容器

SpringBoot自动配置原理

给你一囗甜甜゛ 提交于 2020-01-14 17:50:29
扫描自动配置组件 1、SpringBoot启动的时候加载主配置类,开启了自动配置功能@EnableAutoConfiguration 2、 @EnableAutoConfiguration作用: 给容器中导入一些组件 @AutoConfigurationPackage:将主配置类的包以及子包下的所有组件扫描进spring容器中 利用AutoConfigurationImportSelector类下的selectImports()下的 List configurations = getCandidateConfigurations(annotationMetadata, attributes); 获取候选的配置 private static Map < String , List < String > > loadSpringFactories ( @Nullable ClassLoader classLoader ) { MultiValueMap < String , String > result = ( MultiValueMap ) cache . get ( classLoader ) ; if ( result != null ) { return result ; } else { try { Enumeration < URL > urls =

从零开始入门 K8s | GPU 管理和 Device Plugin 工作机制

时光总嘲笑我的痴心妄想 提交于 2020-01-14 17:24:56
作者 | 车漾 阿里巴巴高级技术专家 本文整理自 《CNCF x Alibaba 云原生技术公开课》 第 20 讲。 关注“阿里巴巴云原生”公众号,回复关键词 “入门” ,即可下载从零入门 K8s 系列文章 PPT。 导读 :2016 年,随着 AlphaGo 的走红和 TensorFlow 项目的异军突起,一场名为 AI 的技术革命迅速从学术圈蔓延到了工业界,所谓 AI 革命从此拉开了帷幕。该热潮的背后推手正是云计算的普及和算力的巨大提升。 需求来源 经过近几年的发展,AI 有了许许多多的落地场景,包括智能客服、人脸识别、机器翻译、以图搜图等功能。其实机器学习或者说是人工智能,并不是什么新鲜的概念。而这次热潮的背后,云计算的普及以及算力的巨大提升,才是真正将人工智能从象牙塔带到工业界的一个重要推手。 与之相对应的,从 2016 年开始,Kubernetes 社区就不断收到来自不同渠道的大量诉求:希望能在 Kubernetes 集群上运行 TensorFlow 等机器学习框架。这些诉求中,除了之前文章所介绍的,像 Job 这些离线任务的管理之外,还有一个巨大的挑战:深度学习所依赖的异构设备及英伟达的 GPU 支持。 我们不禁好奇起来:Kubernetes 管理 GPU 能带来什么好处呢? 本质上是成本和效率的考虑。由于相对 CPU 来说,GPU 的成本偏高。在云上单 CPU

linux docker创建容器教程

旧巷老猫 提交于 2020-01-14 15:31:48
linux docker创建容器教程 目录 1.docker镜像和容器区别: 2. 拉取镜像: 3. 运行镜像,即->开启容器: 4. docker内上网: 5. 安装各种软件: 6. 解决cv2的问题: 7. 设置python版本: 1.docker镜像和容器区别: 镜像是本地文件,容器是正在run运行的,需要将容器 save 或者 export 或者 commit 到本地,尽量不要覆盖原来的镜像; 2. 拉取镜像: docker pull ***镜像 docker images docker ps -a docker stop Container_Name 停止容器 docker rm Container_Name 删除容器 3. 运行镜像,即->开启容器: docker run --runtime=nvidia -v /home:/home -w /home/leilei -it --entrypoint bash -d --name cuda8.0-leilei -h pytorch0.3.1 --sym-size 32G nvidia/cuda:8.0-cudnn5.0-devel-ubuntu16.04 命令参数解析: --runtime 运行环境,nvidia代表可以使用显卡 -v 目录映射,共享目录; /root就是用户目录,cd->pwd就可以得到 -w 工作目录

Docker-Compose模板文件参数详解

梦想与她 提交于 2020-01-14 11:40:25
前言 模板文件是使用compose的核心,涉及到的指令关键字比较多,但是大部分和docker run相关参数的含义都是类似的。 默认的模板文件名称为docker-compose.yml,为yaml格式,如下: version: "3" services: webapp: image: examples/web ports: - "80:80" volumes: - "/data" 注意每个服务都必须通过 image 指令指定镜像或 build 指令(需要 Dockerfile)等来自动构建生成镜像。 如果使用 build 指令,在 Dockerfile 中设置的选项(例如:CMD, EXPOSE, VOLUME, ENV 等) 将会自动被获取,无需在 docker-compose.yml 中重复设置。 1、build 指定Dockerfile所在文件夹的路径(可以是绝对路径,或者相对docker-compose.yml文件的路径)。compose将会利用它自动构建这个镜像,然后使用这个镜像。 如下: version: '3' services: webapp: build: ./dir 也可以使用context指定dockerfile所在文件夹的路径,使用dockerfile指令指定dockerfile文件名,使用arg指令指定构建镜像时的变量。如下: version: '3'

Docker Compose容器编排

二次信任 提交于 2020-01-14 07:17:20
本章知识点概括: Docker Compose容器编排 构建自动发现的Docker服务架构 实现容器服务自动加入Nginx集群 **Docker Compose容器编排功能** Docker compose的前身是Fig,它是一个定义及运行多个docker容器的工具 使用Docker Compose不再需要使用shell脚本来启动容器 Docker Compose非常适合组合是同多个容器进行开发的场景 可以执行多个容器的操作 **Docker Compose容器编排** YAML是一种标记语言很直观的数据序列化格式 文件格式及编写注意事项 不支持表符tab缩进,需要使用空格缩进 通常开头缩进2个空格 字符后缩进1个空格,如冒号,逗号,横杠 用#号注释 如果包含特殊字符用单引号引起来 布尔值必须用引号括起来 Docker Compose配置常用字段 build dockerfile context 指定Dockerfile文件名构建镜像上下文路径 image 指定镜像 command 执行命令,覆盖默认命令 container name 指定容器名称,由于容器名称是唯一的,如果指定自定义名称,则无法scale deploy 指定部署和运行服务相关配置,只能在swarm模式使用 environment 添加环境变量 networks 加入网络 ports 暴露容器端口

Docker安全管理

邮差的信 提交于 2020-01-14 07:15:11
Docker安全管理——理论+操作 -------------------------------------------------Docker 容器与虚拟机的区别------------------------------------------------------ **1.隔离与共享** 虚拟机通过添加 Hypervisor 层,虚拟出网卡、内存、CPU 等虚拟硬件,再在其上建立 虚拟机,每个虚拟机都有自己的系统内核。 而 Docker 容器则是通过隔离的方式,将文件系 统、进程、设备、网络等资源进行隔离,再对权限、CPU 资源等进行控制,最终让容器之间互不影响, 容器无法影响宿主机。容器与宿主机共享内核、文件系统、硬件等资源。 #docker容器共享同一个内核资源,而虚拟机是独立的使用的资源都是独立的。 **2.性能与损耗** 与虚拟机相比,容器资源损耗要少。 同样的宿主机下,能够建立容器的数量要比虚拟 机多。但是,虚拟机的安全性要比容器稍好, 要从虚拟机破到宿主机或其他虚拟机,需要 先破 Hypervisor 层,这是极其困难的。而 docker 容器与宿主机共享内核、文件系统等资源, 更有可能对其他容器、宿主机产生影响。 #与虚拟机相比容器消耗资源要少的多,因为容器是共享内核的意味着,一个容器资源占用多,其他容器占用的就少,一个容器出现问题,其他容器都会出现问题

2_STL容器

安稳与你 提交于 2020-01-14 02:47:21
STL算法的精髓在于 算法的 返回值!!! String:   string是STL的字符串类型,通常用来表示字符串;C语言中一般用char*   char*字符指针;string是类封装了char*,管理这个字符串,是一个char*型的容器;   string不用考虑内存释放和越界,string管理char*所分配的内存。   string提供了一系列字符串操作函数(find,copy,erase,replace,insert) 初始化 :   string s1 = "abcd"; //重载operator=   string s2("abcd") //有参构造函数   string s3 = s2; //初始化调用的是拷贝构造函数,跟赋值调用operator=()不同   string s1(3,'a'); //s1的内容:aaa;将字符复制n份 遍历: 通过数组的方式: for(int i = 0; i < s1.length(); i++) { cout << s1[i] << " "; } 通过迭代器: for(string::iterator k = s1.begin(); k = s1.end(); k++) { cout << *k << " "; } 通过at()函数: 与数组的[]方法相比,at()可以抛出异常,提示下标越界;而[]不抛出异常直接中断程序。

学习Java框架 Spring

断了今生、忘了曾经 提交于 2020-01-14 02:36:59
学习Java框架 Spring Java Spring框架 简介 Spring是一个开源框架、一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。相当于一个容器 工厂, 可以将所有对象创建和依赖关系维护, 交由 Spring 管理 。 体系结构 如果作为一个整体,这些模块为你提供了开发企业应用所需的一切。但你不必将应用完全基于Spring框架。 你可以自由地挑选适合你的应用的模块而忽略其余的模块。 Spring简单使用 步骤·: 1、导包 引入spring依赖的jar文件 解压后的文件夹: docs :API 和开发规范. libs :jar 包和源码. schema :约束. jar 包 spring-beans-4.3.6.jar 所有应用都要用到的,它包含访问配置文件、创建和管理 bean(java对象)及进行 Inversion of Control / Dependency Injection(属性赋值)(IoC/DI)操作相关的所有类 spring-context-4.3.6.jar Spring 供在基础 IoC 功能上的扩展服务,此外还 供许多企业级服务的支持 , 如邮件服务(SpringMail)、 任务调度(SpringTest)、JNDI 定位、EJB 集成、远程访问、缓存以及各种视图 层框架(springMVC)的封装等。 spring-core