关于Kubernetes的简单介绍
发布日期:2016-3-28 11:3:45
关于Kubernetes的简单介绍 Kubernetes是什么? Kubernetes是一个基于Docker容器的开源编制系统,它能在跨多个主机上管理Docker应用,并提供应用程序部署 ,维护和扩展的基本机制。 它透明地为用户提供着原生态系统,比如“需要5个 WildFly服务器和1个 MySQL服务器运行". Kubernetes具有自我修复机制,如重新启动 ,重新启动定时计划 ,复制容器以确保恢复状态,用户只需要定义状态,那么 Kubernetes就会确保状态总是在集群中。 Docker定义了运行代码时的容器,有命令用来启动 ,停止 ,重启 链接容器,Kubernetes使用Docker打包以及实例化应用程序。 一个典型的应用程序必须跨多个主机。 例如,您的web层(Apache )可能运行在一个容器。 同样地,应用程序层将会运行在另外一组不同的容器中。 web层需要将请求委托给应用程序层。 当然,在某些情况下,你可能将web服务器和应用服务器打包在一起放在相同的容器。 但是数据库层通常运行在一个单独层中。 这些容器之间需要相互交互。 使用上面的任何解决方案都需要编制脚本启动容器,以及监控容器,因防止出现问题。 而Kubernetes在应用程序状态被定义后将为用户实现所有这些工作。 关键概念 以一个很高层次看有三个关键概念: Pods 是最小的可部署的单位,可以创建、调度和管理。 它是容器的属于一个应用程序的逻辑集合。 Minion 是一个由主节点委托运行任务的worker。 它能运行一个或多个Pods。 它在容器环境中提供了一个特定于应用程序的"虚拟主机"。 Master 是中央控制点,它提供了一个统一的集群视图。 有一个主节点,控制多个下属Slave。 高级Kubernetes逻辑框图如下所示: 然后让我们稍微仔细看看其运行原理: 复制控制器 是一个在Master的资源,确保大量pods请求一直运行在Minion上。 标签label 是分布式的存储的一个任意的键/值对,复制控制器使用它来实现服务发现。 服务 是一个在Master上的对象,它提供跨可复制的pods组的负载平衡 kubelet :每个Minion运行服务以执行容器的运行,能够从Master处进行管理,除了Docker,Kubelet是另外一个关键的安装服务。 它读取容器manifest文件作为YAML文件用来描述了一个pod。 Kubelet确保在pods中定义的容器启动和继续运行。 主RESTful服务 Kubernetes API ,验证和配置Pod、服务和复制控制器。 具体可见:Kubernetes设计概述 OpenShift v3使用Kubernetes和码头工人 提供下一个代的PaaS平台。 非常有趣的是,"Kubernetes"实际上是一个希腊词κυβερνήτης, 意思是"船的舵手"。 在这个意义上,Kubernetes对于Docker(集装箱船)倒是挺般配的。
|