Kubernetes 是用于自动部署、扩展和管理容器化应用程序的开源系统。该系统由 Google 设计并捐赠给 Cloud Native Computing Foundation 来使用。 它旨在提供“跨主机集群的自动部署、扩展以及运行应用程序容器的平台”。 它支持一系列容器工具, 包括 Docker 等。
CNCF 于 2017 年宣布首批 Kubernetes 认证服务提供商(KCSPs),包含 IBM、华为、MIRANTIS 等服务商。
历史
Kubernetes(在希腊语意为“舵手”或“驾驶员”)由 Joe Beda、Brendan Burns 和 Craig McLuckie 创立,并由其他谷歌工程师,包括 Brian Grant 和 Tim Hockin 等进行加盟创作,并由谷歌在 2014 年首次对外宣布 。该系统的开发和设计都深受谷歌的 Borg 系统的影响,其许多顶级贡献者之前也是 Borg 系统的开发者。在谷歌内部,Kubernetes 的原始代号曾经是 Seven,即星际迷航中的 Borg(博格人)。Kubernetes 标识中舵轮有七个轮辐就是对该项目代号的致意。
Kubernetes v1.0 于 2015 年 7 月 21 日发布。随着 v1.0 版本发布,谷歌与 Linux 基金会合作组建了 Cloud Native Computing Foundation (CNCF)并将 Kubernetes 作为种子技术来提供。
Rancher Labs 在其 Rancher 容器管理平台中包含了 Kubernetes 的发布版。Kubernetes 也在很多其他公司的产品中被使用,例如 Red HatOpenShift,CoreOS 的 Tectonic, 以及 IBM 的 IBM 私有云产品,以及 VMware 的 PKS 等等。
设计
Kubernetes 在设计结构上定义了一系列的构建模块,其目的是为了提供一个可以共同提供部署、维护和扩展应用程序的机制。组成 Kubernetes 的组件设计概念为松耦合和可扩展的,这样可以使之满足多种不同的工作负载。可扩展性在很大程度上由 Kubernetes API 提供,此 API 主要被作为扩展的内部组件以及 Kubernetes 上运行的容器来使用。
Pod
Kubernetes 的基本调度单元称为“pod”。通过该种抽象类别可以把更高级别的抽象内容增加到容器化组件。一个 pod 一般包含一个或多个容器,这样可以保证它们一直位于主机上,并且可以共享资源。Kubernetes 中的每个 pod 都被分配一个唯一的(在集群内的)IP 地址这样就可以允许应用程序使用同一端口,而避免了发生冲突的问题。Pod 可以定义一个卷,例如本地磁盘目录或网络磁盘,并将其暴露在 pod 中的一个容器之中。pod 可以通过 Kubernetes API 手动管理,也可以委托给控制器来实现自动管理。
服务
Kubernetes 服务本质是一组协同工作的 pod,类同多层架构应用中的一层。构成服务的 pod 组通过标签选择器来定义。Kubernetes 通过给服务分配静态 IP 地址和域名来提供服务发现机制,并且以轮循调度的方式将流量负载均衡到能与选择器匹配的 pod 的 IP 地址的网络连接上(即使是故障导致 pod 从一台机器移动到另一台机器)。默认情况下,服务任务会暴露在集群中(例如,多个后端 pod 可能被分组成一个服务,前端 pod 的请求在它们之间负载平衡);除此以外,服务任务也可以暴露在集群外部(例如,从客户端访问前端 pod)。
未经允许不得转载(声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:net-net@foxmail.com进行举报,并提供相关证据,工作人员会在10个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。):策信智库资讯网 » Kubernetes是什么程序