zoukankan      html  css  js  c++  java
  • 容器及容器生态系统概述

    1.容器技术和容器平台技术

    (1)容器技术:
    (1.1)容器核心知识:是什么、为什么、怎么做(架构、镜像、容器、网络、存储);
    (1.2)容器进阶知识:multi-host、容器网络、数据管理、日志管理、安全性。
    (2)容器平台技术:
    (2.1)容器编排引擎:docker swarm、kubernetes、mesos+marathon;
    (2.2)容器管理平台:Rancher、ContainerShip;
    (2.3)基于容器的PaaS(Platform-as-a-Service:平台即服务):Deis、Flynn、Dokku。
    容器技术和容器平台技术–思维导图如下:
    容器技术和容器平台技术--思维导图
    容器生态系统思维导图:
    容器生态系统思维导图

    1.1 容器生态系统概述

    1.1.1 容器核心技术:

    容器核心技术是指能让Container(容器)在host(集群、主机)上运行起来的那些技术。
    (1)容器规范:
    OCI(runtime spec+image format spec)
    (2)容器runtime:
    runtime是容器真正运行的地方。需要跟操作系统的kernel紧密协作,为容器提供运行环境。
    java程序类似容器,JVM类似runtime,JVM为java提供运行环境,容器只有在runtime才能运行
    主流的容器runtime:lxc、runc、rkt。
    (3)容器管理工具:
    对内与runtime交互,对外为用户提供interface(界面)。
    常用的容器管理工具:
    lxd(是lxc对应的管理工具);
    runc的管理工具是docker engine。docker engine包括后台deamon和cli两部分。通常说的Docker,就是指docker engine;
    rkt的管理工具是rkt cli。
    (4)容器定义工具:
    容器定义工具:允许用户定义容器的内容和属性。这样容器就能够被保存、共享和重建。
    常用的容器定义工具:
    docker image:是docker容器的模板,runtime一句docker image创建容器;
    dockerfile:是包含若干命令的文本文件,可以通过这些命令创建出docker image;
    ACI(App Container Image):与docker image类似,不过它是由CoreOS开发的rkt容器的image格式。
    (5)Registries:容器是通过image创建的,需要有一个仓库来统一存放image,这个仓库就叫做Registry。
    Docker Registry:企业可以用Docker Registry构建私有的Registry;
    Docker Hub:是docker为公众提供的托管registry,有很多现成的image;
    Quay.io:也是一个公共托管registry。
    (6)容器OS:是专门运行容器的操作系统。
    常用:coreos、atomic、ubuntu core。

    1.1.2 容器平台技术:

    (1)容器编排引擎
    要干的工作:用高效的方法来管理容器集群。
    常用容器编排引擎:
    docker swarm:是Docker开发的容器编排引擎;
    kubernetes:是Google领导开发的开源容器编排引擎,同时支持Docker和CoreOS容器;
    mesos:是一个通用的集群资源调度平台,mesos与marathon一起提供容器编排引擎功能。
    (2)容器管理平台
    是架构在容器编排引擎之上的一个更通用的平台。
    通常容器管理平台支持多种编排引擎,抽象了编排引擎的底层实现细节。
    典型代表:Rancher、ContainerShip。
    (3)基于容器的PaaS
    PaaS即(Platform-as-a-Service:平台即服务。
    基于容器的PaaS为微服务应用开发人员和公司提供了开发、部署和管理应用的平台,使用户不必关心底层基础设施而专注于应用的开发。
    开源容器PaaS的代表:Deis、Flynn、Dokku。

    1.1.3 容器支持技术:

    (1)容器网络
    docker network:是Docker原生的网络解决方案;
    flannel:第三方开源解决方案;
    weave:第三方开源解决方案;
    calico:第三方开源解决方案。
    (2)服务发现
    动态变化是微服务应用的一大特点。当负载增加时,集群会自动创建新的容器;负载减小,多余的容器会被销毁。
    容器也会根据host的资源使用情况在不同host中迁移。
    服务发现的典型解决方案:etcd、consul、zookeeper。
    (3)监控
    docker ps/top/stats:是Docker原生的命令行监控工具;
    docker stats API:可以通过HTTP请求获取容器的状态信息;
    sysdig:开源的容器监控方案;
    cAdvisor/Heapster:开源的容器监控方案;
    Weave Scope:开源的容器监控方案。
    (4)数据管理
    容器经常在不同的host之间迁移。
    如何保证持久化数据也能动态迁移,是Rex-Ray这类数据管理工具提供的能力。
    (5)日志管理
    日志工具有两类:
    docker logs:是Docker原生的日志工具。
    logspout:对日志提供了路由功能,可以收集不同容器的日志并转发给其他工具进行后处理。
    (6)安全性
    OpenSCAP:是一种容器安全工具。能够对容器镜像进行扫描,发现潜在的漏洞。

  • 相关阅读:
    姐姐的vue(1)
    LeetCode 64. Minimum Path Sum 20170515
    LeetCode 56. 56. Merge Intervals 20170508
    LeetCode 26. Remove Duplicates from Sorted Array
    LeetCode 24. Swap Nodes in Pairs 20170424
    LeetCode 19. Remove Nth Node From End of List 20170417
    LeetCode No.9 Palindrome Number 20170410
    LeetCode No.8. String to Integer (atoi) 2017/4/10(补上一周)
    LeetCode No.7 Reverse Integer 2017/3/27
    LeetCode No.4 Median of Two Sorted Arrays 20170319
  • 原文地址:https://www.cnblogs.com/moon3/p/12191188.html
Copyright © 2011-2022 走看看