q36988 发表于 2015-10-13 12:16:50

Openshift V3简介

  2015 Redhat(红帽)全球峰会,器技术成为redhat最为看重的技术。 红帽峰会上,红帽重点介绍了其最新发布的新一代的PaaS 产品 OpenShiftEnterprise V3。在openshift之前的版本采用cgroup进行用户隔离及资源调配。伴随着Docker技术的日渐成熟,它吸引了openshift 架构师目光,openshift被重新设计,底层docker容器采用术,网络基于Google Kubenate 技术,openshift 社区,重写了其所有代码。经过1年左右的努力,终于进入了商用阶段。下面我们就来了解下这个被寄予厚望的产品。
  

  下图是openshift网站给出的系统结构图。Openshift 产品的总体构架仍然分为两部分,及控制系统和运行系统。在openshift v3中, 控制系统叫做master,运行系统叫做node。 node以pod为单位,以容器的形式运行客户应用。master提供openshift的人机接口,总体管控openshift nodes及pod分配,运行的调配等。
  

  

  
  

openshift的一些基本概念如下:
  master: Openshift的控制中心,提供人机接口,负责node的注册,管理,docker 镜像的创建,部署,pod的创建分配,pod集群的管理,openshift运行数据的存储。
  etcd:etcd是一个高可用的键值存储系统,主要用于共享配置和服务发现。Openshift使用etcd存储运行配置数据。
  
  pod:   Openshift应用的最小单元,它由一个运行客户应用的docker容器和一个控制容器组成,通常情况下,一个pod等同于2个docker容器。
  container:   一种预先定义好的可以运行一个多个inux兼容程序的环境。Containers 从images中启动,并且通称各个contianers之间是隔离的。
images:存储了linux文件系统,应用程序,应用程序依赖文件的静态镜像。镜像可以被执行,执行后,程序的内容不会被改变。






  service: Service提供一种对pod 访问模式,为pod提供固定的ip:port地址,使得访问更加的安全和稳定。
  router: Openshift可以对pod进行访问的网络地址。
  build: Openshit 部署客户应用的过程,包括,生成docker images,建立service,启动pod等过程。
  Replicas: Openshift 对应用的HA处理,可以增强可用性,提高并发及响应速度。
  node: 集成docker容器openshift客户应用的运行服务器。其作用等同于kubenate的minions
REST APIs, 提供openshift各种对象的访问接口。
Docker container: docker 运行态的一个容器  Docker registery: docker镜像存储服务器,等同于私有的docker hub服务器。
  Docker images:    docker镜像。openshift针对不同的开发语言,制作了基础的docker镜像,如centos-ruby20,centos-perl517等。用户可以在这些镜像的基础之上部署自己的应用。

  Openshift 的基础架构是建立在Kubernetes 集群上的微服务,所以我们先看下Kubernetes 基础架构
  
  Kubernetes 可以被用于管理被容器化的应用程序,并提供部署,维护,自动负载等功能。一个基本kubernates 集群,有一个master和多个cluster组成。

  
  Kubernetes master 主要由以下组件构成:

  名称DescriptionAPI 服务

Kubernetes API 服务 验证和配置 pods,service 和replication 控制器. 同时,他可以分配pods和同步服务数据。
etcd
etcd 存储master,pods,service,replication 控制器的数据和状态
控制管理器
控制管理器监控 etcd 中的数据,并根据其中的数据调用api保证应用程序的运行跟定义的数据一致。


  

Node
  node 为容器提供运行所需的环境变量。每一个node都对应 master中一个服务。node本身包含运行 pods,docker,kubelet 和 serviceproxy的服务。node可以运行在物理机,或者虚拟机上,红帽专门为docker而定制的 ATOM 系统,是最适合的node载体。

Kubelet
  每一个node上的都包含一个kubelet服务,它每20秒中连接一次etcd 服务器,读取etcd中的配置信息,并保持openshift应用程序的运行态符合用户定义。

Service Proxy
每个node上都有一个基于Openshift Switch实现网络服务代理,他为docker 容器分配网络地址,并建立跨node的网络路由,保证个docker之间的网络联通性。
         版权声明:本文为博主原创文章,未经博主允许不得转载。
页: [1]
查看完整版本: Openshift V3简介