Kubernetes简单介绍

  Kubernetes是什么? Kubernetes是一个基于Docker容器的开源编制系统,它能在跨多个主机上管理Docker应用,并提供应用程序部署 维护和扩展的基本机制。

  它透明地为用户提供原生态系统,如“需要5个 WildFly服务器和1个 MySQL服务器运行". Kubernetes具有自我修复机制,如重新启动 重新启动定时计划 复制容器以确保恢复状态,用户只需要定义状态,那么 Kubernetes就会确保状态总是在集群中。

  Docker定义了运行代码时的容器,有命令用来启动 停止 重启 链接容器,Kubernetes使用Docker打包以及实例化应用程序。

  一个典型的应用程序必须跨多个主机。 例如,您的web层(Apache )可能运行在一个容器。 同样地,应用程序层将会运行在另外一组不同的容器中。 web层需要将请求委托给应用程序层。 当然,在某些情况下,你可能将web服务器和应用服务器打包在一起放在相同的容器。 但是数据库层通常运行在一个单独层中。 这些容器之间需要相互交互。 使用上面的任何解决方案都需要编制脚本启动容器,以及监控容器,因防止出现问题。 而Kubernetes在应用程序状态被定义后将为用户实现所有这些工作。

关键概念

  以一个很高层次看有三个关键概念:

  • Pods 是最小的可部署的单位,可以创建、调度和管理。 它是容器的属于一个应用程序的逻辑集合。
  • Master 是中央控制点,它提供了一个统一的集群视图。 有一个主节点,控制多个下属Slave。
  • Minion 是一个由主节点委托运行任务的worker。 它能运行一个或多个Pods。 它在容器环境中提供了一个特定于应用程序的"虚拟主机"。

高级Kubernetes逻辑框图:

kuberbetes

  让我们稍微仔细看看其运行原理:

  • 复制控制器 是一个在Master的资源,确保大量pods请求一直运行在Minion上。
  • 服务 是一个在Master上的对象,它提供跨可复制的pods组的负载平衡
  • 标签label 是分布式的存储的一个任意的键/值对,复制控制器使用它来实现服务发现。
  • kubelet :每个Minion运行服务以执行容器的运行,能够从Master处进行管理,除了Docker,Kubelet是另外一个关键的安装服务。 它读取容器manifest文件作为YAML文件用来描述了一个pod。 Kubelet确保在pods中定义的容器启动和继续运行。
  • 主RESTful服务 Kubernetes API ,验证和配置Pod、服务和复制控制器。

  具体可见:Kubernetes设计概述 

  OpenShift v3使用Kubernetes和码头工人 提供下一个代的PaaS平台。

  有趣的是,"Kubernetes"实际上是一个希腊词κυβερνήτης, 意思是"船的舵手"。 在这个意义上,Kubernetes对于Docker(集装箱船)倒是挺般配的。、

 

使用Mesos和Marathon管理Docker集群

Docker教程