Openshift V3简介 - Docker 应用平台

来源:互联网 发布:淘宝手机端轮播图尺寸 编辑:程序博客网 时间:2024/05/21 12:01

         2015 Redhat(红帽)全球峰会,器技术成为redhat最为看重的技术。 红帽峰会上,红帽重点介绍了其最新发布的新一代的PaaS 产品 OpenShift  Enterprise 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 主要由以下组件构成:

名称Description

API 服务

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之间的网络联通性。

0 0
原创粉丝点击