OpenShift-红帽Docker容器管理平台

本内容来自9月中旬BoCloud博云举办的“云计算·风向 名为PaaS的热带气旋”主题沙龙分享内容。现将博云、微软、红帽、美团、民生银行的5位技术专家在沙龙中分享的实践经验与大家分享。

主题

OpenShift-红帽Docker容器管理平台

 淡成

红帽软件高级方案架构师

红帽软件高级方案架构师,具有多年的软件开发和架构经验。目前主要专注于应用开源技术为企业级客户设计和部署基于容器的云应用平台,帮助客户建立Devops最佳实践。曾就职于Sun、威睿等公司。

简介

  • 容器相关技术介绍
  • 红帽Docker容器云相关技术介绍
  • 红帽Docker容器云成功案例

容器相关技术介绍

一、容器引擎

Docker

  • 由Docker公司推出
  • 当前最流行的引擎,也是事实的工业标准

Rocket

  • 由CoreOS推出,没有Docker 那些为企业用户提供的云服务加速工具、集群系统等,是一个更纯粹的业界标准。

Gear

  • 由RedHat推出,只用在OpenShift中
  • 在OpenShift v3后已经全面转为Docker Gear

Warden

  • 由Pivotal推出,主要用于CloudFoundry
  • 新一代Garden将会支持Docker镜像的运行Warden

Windows容器

  • 由MicroSoft推出,包括Windows Server容器和Hyper-V容器
  • 微软和Docker宣布合作,新的Docker引擎版本将容器引入Windows容器。

二、容器编排

Docker Swarm

  • 由Docker公司推出
  • 允许在Docker集群中调度容器,与Docker环境紧密集成。

Kubernetes

  • 由Google推出,在功能特性方面是当前最先进的工具。
  • 使用计算集群部署并管理容器,同时均衡工作负载来维护性能。
  • 红帽OpenShift v3目前是使用Kubernetes做容器编排。

Apache Mesos

  • 由Apache推出,通用的数据中心管理系统。不是专为Docker 开发,Mesos还支持工作和任务的概念。
  • 可以与其它编排系统如Kubernetes 集成,或者与像Hadoop的传统服务集成。

Fleet

  • CoreOS推出,是CoreOS操作系统的一部分
  • 管理在CoreOS集群中任何调度命令(比如运行Docker或者rkt容器)。

Rancher

  • 由Rancher公司推出
  • 在机器集群上以stack(linked容器)为单位管理容器。

Diego

  • 由Pivotal推出
  • 主要用于CloudFoundry

容器编排-Pull次数

20161010171604

容器编排-GitHub上的开发使用量

20161010171613

容器编排-GitHub上受关注量

20161010171622

容器编排-GitHub上喜爱数

20161010171630

三、容器OS

CoreOS

  • 由CoreOS公司推出
  • 为自动更新设计以及着重在机器集群之间的运行容器。不仅与systemd的fleet调度器交付,而且支持其它编排系统。

Atomic

  • 由RedHat公司推出
  • 运行Docker、Kubernetes、rpm、systemd的轻量级容器操作系统。

Rancher OS

  • 由Rancher公司推出,只包含运行Docker必须的软件
  • 区分系统容器和用户容器,他们运行在分离的Docker守护进程中。

Photon

  • 由VMWare推出
  • VMware为容器化应用而设计的轻量级的操作系统。

Snappy

  • Snappy Ubuntu是一个崭新的,具有事务性更新的为云及设备而建立的操作系统。

容器技术堆栈

20161010171642

红帽Docker容器云是什么?

红帽OpenShift容器云应用平台连续第二年荣获InfoWorld年度最佳技术奖。

Kubernetes是什么?

Kubernetes是Google开源的容器集群管理系统。它构建在Docker技术之上,为容器化的应用提供资源调度、部署运行、服务发现、扩容缩容等一整套功能,本质上可看作是基于容器技术的mini-PaaS平台。

20161010171654

20161010171719

OpenShift可以运行在任何的基础设施上

20161010171731

节点(Nodes)是RHEL/Atomic实例,应用(Apps)将运行在节点上

20161010171739

应用服务运行在每个节点的docker容器中

20161010171746

 

一个或多个docker容器可以运行在Pods中作为一个整体单元

20161010171753

 

Registries负责保存应用的images

20161010171801

Masters使用kubernetes对nodes / apps进行编排

Master为用户和客户端提供authenticated API

20161010171809

 

Master使用etcd key-value数据存储保存持久化数据

 

20161010171816

Master通过scheduler决定pod应该部署到哪个nodes上

20161010171823

 

Pod是基于定义好的策略进行相关部署的

20161010171829

 

Services允许相关的pods彼此进行连接和通讯

20161010171837

 

Management/Replication controller管理pod的生命周期

20161010171846

 

如果一个pod坏掉了会发生什么情况?

20161010171854

 

OpenShift会自动发现并部署一个新的Pod

20161010171903

 

Pods可以为有状态的服务映射共享存储

20161010171910

 

Routing layer路由外部的应用请求到pods

20161010171919

 

开发人员和运维人员可以通过web, CLI或者IDE访问OpenShift

20161010171928

 

如何保证OpenShift容器云中应用的高可用性?

OpenShift会自动发现并部署一个新的Pod

20161010171936

 

两地双活业务请求分发

20161010171943

 

如何将应用快速地在开发、测试和生产环境中交互?

开发、测试、生成环境交互

20161010171951

 

从代码到生产环境自动化

20161010171959

 

如何将容器云应用部署流程和现有研发流程相结合?

容器云应用部署流程与现有研发流程整合

20161010172006

 

如何将容器云应用日志进行管理?

容器云应用监控及日志管理

20161010172015

 

如何收集容器云中的容器指标?

容器指标收集

20161010172023

 

如何将容器云应用与现有IT应用系统及服务进行整合?

容器云应用与现有IT应用系统及服务的整合

20161010172030

 

Openshift技术特点

  • 基于Docker的标准运行时
  • 基于Kubernetes的容器调度框架
  • 企业级镜像仓库
  • 软件定义存储、软件定义网络
  • 从开发到生产的Devops工具,git,jenkins,nexus,monitoring…
  • 多语言支持,java,php,python,nodejs…
  • 多服务支持,mysql,mongo,postgres,AMQ…
  • JBoss中间件
  • SElinux的安全扩展
  • 基于RHEL平台,支持混合云部署

 

Openshift带来的好处

加速应用开发和交付

  • 开发人员自服务
  • 自动化
  • CI、CD

提高组织效率

  • Devops工具提高开发运维协作

提高资源利用率

  • 容器支持更高的计算密度

小的试错成本

标准化开发、运维环境

无锁定的企业级容器平台

红帽Docker容器云成功案例

20161010173256

K8S中文社区微信公众号
分享到:更多 ()