openshift基本概念学习

时间:2024-03-23 11:47:16

 openshift:基于Docker和K8s构建的容器云

    构建内部应用市场,提供中间件、数据库

    自动化的流程,可以快速进行应用的构建、容器化和部署

    贯通从应用开发到测试、上线的流程。开发、测试、运维可以在一个平台上协作

    提高研发效率

openshift基本概念学习

openshift与Docker、K8s的关系:

    openshift是基于容器技术构建的一个云平台

    以Docker作为容器引擎驱动、以K8s作为容器编排引擎组件,提供了一套完整的基于容器的应用云平台。

openshift继承了原生的K8s作为容器编排组件,管理容器集群中的机器节点及容器

    容器调度、弹性伸缩、异常自愈、持久化卷、服务发现、配置管理

openshift在dK的基础上提供了各种功能:

    应用开发框架及中间件

    应用及服务目录:实现一键部署各类应用及服务,如Hadoop\Spack集群

    自动化流程及工具:内置了自动化流程工具S2I(Source  to Image),帮助用户自动化完成代码的编译、构建及镜像发布。

    软件自定义网络:

    性能监控及日志管理:提供了开箱可用的性能监控及日志管理组件

    多用户接口,提供了Web用户界面、命令行工具及RESTful API

    自动化集群部署及管理,通过Ansible实现了集群的自动化部署

核心组件:

openshift基本概念学习

Master节点:主控节点,集群内的管理组件均运行于Master节点之上,负责管理维护openshift状态

Node节点:计算节点,集群内的容器实例均运行于Node节点之上

API Server:集群内所有Node节点都会访问API Server更新各节点状态及其上运行的容器状态

数据源(Data Store):集群所有动态的状态信息都会存储在后端的一个etcd分布式数据库中

调度控制器(Scheduler):负责按照用户的输入要求寻找合适的计算节点

复制控制器(Replication Controller):容器云一个重要的特性是异常自恢复。复制控制器负责监控当前容器实例的数量和用户不是指定的数量是否匹配

基本命令:

    oc get nodes     查看所有节点

    oc describe node master.example.com    查看节点详细信息

    oc project    查看用户当前所在的Project

    oc get pods    查看当前所在项目的pod

    oc describe pod    查看容器的详细信息

    oc logs <pod name>    查看Pod的输出

    ocrsh <pod name>    可以进入容器内部执行命令进行调试

    oc get svc    获取当前项目下所有Service对象的列表

    oc get routes    可查看项目中所有的Route

project就是Namespace

用户不会直接看到Docker容器本身,会看到pod,Pod实际也是一个docker容器

为克服容器变化引发的链接信息的变化,K8s提供了Service(服务)的组件。当部署某个应用时,会为该应用创建一个Service对象。Service对象会与该因公的一个或多个Pod关联。每个Service会被分配一个IP地址。无论后端的Pod实例数量或地址如何变化,前端的应用只需访问Service的IP地址,就能连接到正确的后端容器实例。Service气到了代理的作用,在相互依赖的容器应用之间实现了解耦

Service的IP地址是虚拟的,只是集群内部的节点及容器可见,Route用来解决外部用户访问Service的问题

route负责将集群外的请求转发到集群的容器,Service负责把来自集群内部的请求转发到指定的容器中,一个对外,一个对内