• 1
  • 2
  • 3
  • 4
  • 5
阿里云主机ECS 首 页  »  帮助中心  »  云服务器  »  阿里云主机ECS
关于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(集装箱船)倒是挺般配的。