美文网首页openshift
k8 and openshift 机制概述

k8 and openshift 机制概述

作者: wangxiaoxi | 来源:发表于2018-10-27 12:34 被阅读106次

    OCP(Openshift Container Platform)基于RHEL和docker技术上构建的一些列模块化的组件和服务。OCP增加了PaaS的能力,远端管理, 多用户模式,加固的安全,监控和诊断,应用的生命周期管理,以及提供了开发人员的自服务的接口。

    openshift

    如果,从下到上,从左到右,让我们来看一下基本的容器构造是如何集成和提升的:
    1. base os是RHEL

    2. Docker提供了基础的容器管理API以及container image文件格式

    3. k8管理一个用来运行容器的物理的或者虚拟的集群。它用资源去描述由多资源组成的组成的多容器应用,以及它们是如何内部连接的。如果说Docker是OCP的core, 那么k8就是OCP的核心,用来协调这些core.

    4. Etcd是一个分布式 key-value的存储。k8用其去存储和展示容器以及其他资源类型的配置以及信息。

    Openshift作为一个产品级的PaaS平台给Docker和K8 容器设施增加了以下能力

    1. OCP-K8 extensions是被K8管理的存储在Etc的一种额外资源类型。这些额外的资源组构成OCP内部的状态和配置。

    2.容器的服务实现了许多PaaS架构的功能,例如网络,认证的等。OCP为绝大多数的内部功能调整了docker和kubernetes的基本容器架构。也就是说,绝大多是OCP的内部服务都是被K8管理的containers.

    3. Runetimes 以及 xPaaS是供开发人员使用的基本的container images,

    4. Devops 的工具以及user experience是指OCP提供的Web和CLI管理工具,用来管理用户的应用程序和OCP服务。这些Web和CLI工具都是基于REST APIs。另,REST APIs供外部工具例如IDEs和CI platform调用。

    一个K8的集群是一组用来跑containers且被一组master server集中管理的的node servers。

    一个server可以即作为server又作为node, 但是出于稳定性的考虑,通常server只做server.

    k8的术语:

    master: 在一个K8集群中管理workload和communications的server

    node: 在一个K8集群中应用的宿主机

    Lable: 给配置K8资源的一组key/value。一个selector用label去过滤满足条件的资源并执行相应操作。

    一个OpenShift集群其实就是一个k8集群,只是运用的是Openshift提供的管理工具,例如command-line interface或者Web console. 

    K8资源类型

    K8有5种资源类型。这些资源类型都可以通过YAML或者JSON或者Openshift的管理工具来进行创建或者编辑。

    Pods

    K8的基本单元,一组共享IP和PV的容器。

    Services

    定义了一个单一的IP/port的combination,用来提供一组pods的入口。

    Replication Controllers

    一个用来定义pods规模的框架。一个RC包含一个pod的定义以及基于其创建的可部署到不同nodes上的pods

    Persistent Volumes (PV)

    PV提供可持续的并挂载在容器去存储数据的网络存储

    Persistent Volume Claims (PVC)

    一个Pod的存储

    尽管一个pod可以被单独创建,但他们通常被高级别的资源RC创建。

    OpenShift Resource Types

    Openshift增加的资源类型有:

    Deployment Configurations (dc)

    基于同一个container image, managing workflows例如rolling updates去创建一组pods

    一个dc通常提供了一个持续发布(continuous delivery)的流程

    Build Configurations (bc)

    Openshift S2I(Source-to-Image)用bc从Git server中获取source code去构建container image. bc + dc就提供了一个可持续集成和发布(continuous integration & continuous delivery)的流程 

    Routes

    Openshift router将这个DNS host name作为应用程序和小服务的入口

    通常RC可以被单独创建,但是通常由高级别资源DC创建

    网络

    每一个没docker进程部署的container都会从内部网络中被分配一个IP。这个IP仅能被这个运行这个container的host可访问。这是因为container总是短暂存在,所以IP总是不停的被分配和释放。

    而K8提供了一个软件定义的网络(SDN)使得K8集群内的container都可以互相访问。但是,pods 内的container不支持去直接连接动态IP,而是建议连接比较稳定的分配给服务的ip.

    K8 集群外部如果想访问container, 在没有openshift的情况下,需要重定向router的一个端口给运行container的host. 但是,存在'scale'的问题。

    Openshift通过route这种resource给容器提供了外部访问入口,且更简单和很好的规模化(scalable)

    相关文章

      网友评论

        本文标题:k8 and openshift 机制概述

        本文链接:https://www.haomeiwen.com/subject/fjnrtqtx.html