Kubernetes可以做哪些容器编排
Kubernetes是一个开源的容器编排系统。 它强大并支持Docker容器,确保它们不断运行。 它还确保如果容器崩溃或主机崩溃,则容器重新启动,如VMware HA,但以不同的方式。 Kubernetes支持许多不同的云提供商和裸机部署,其中有裸机Linux操作系统,并且运行容器在上面。
为什么是Kubernetes?
Kubernetes是希腊文飞行员或舵手的意思,y用于大规模管理容器。Kubernetes的基本目的是确保可以规模地管理所有的容器。容器使应用程序打包和部署过程更容易,非常好的管理这些容器需要大量的努力。 Kubernetes的基本功能是确保我们可以将一个容器集群作为一个系统进行管理,这样可以确保我们能够正确轻松地开发并简化管理所有这些容器的操作。这种方法有助于开发团队将应用程序编码到容器中并交给Ops,并且Ops可以运行这些容器。
当我们查看容器时,它本质上是一种封装应用程序的方式,使其易于在任何地方运行应用程序。然而,操作团队需要管理系统来管理这些容器。 Kubernetes处理大型容器环境。
核心组件
一个容器是一个密封的应用软件,封装成开发,打包和部署的标准单元。容器镜像包含代码,运行时库,依赖关系,配置,将其作为轻量级包运行所需的一切。开发人员可以将其代码及其依赖项打包到容器对象中,然后可以在任何环境中运行它,而且由于它们通常是小对象,因此可以将大量容器推送到单个机器上。 Docker是当今世界最受欢迎的容器之一,大约四岁以上,但原始容器技术是从Unix时代开始的。
pods是小组合作的集装箱,单个pod是最小的可部署单元,可以使用Kubernetes创建,计划和管理。
如果你想运行多个容器,我们假设一个特定的Web服务器和一个数据库的四个副本 ,Kubernetes有一个技术来支持这个称为复制控制器,确保正确数量的pod运行在你想要的特定服务器上。
Kubernetes背后的一个基本前提是我们可以执行一些名为“所需的状态管理”的东西,这真正意味着我们可以为集群服务提供一个特定的配置,并且由组件服务来执行这个配置基础设施。
如果配置k8s(Kubernetes的简称)在物理主机中运行四个pod,并且由于某些原因,如果某个pod崩溃,那么k8将会自动在任何可用的集群节点上启动一个新的pod,以确保您具有所需的四个状态副本可用。
API是在群集服务之前执行所需状态管理的主要组件之一。这是系统的一个关键组成部分。系统的第二个关键构件是被称为工人。一个工作人员真的只是一个容器主机。工作人员也作为与k8s集群服务进行通信的Kubelets。
服务是一组协同工作的荚。它是一个具有容器内部的pod的逻辑结构。例如,将服务器连接在一起,就像Web服务器场一样,几个pod(Web服务器/内容存储库)进行服务。您还可以考虑负载平衡器后端作为服务的示例。通常,您会注意到,独立的独立服务需要多于一个容器 - 它们通常需要一组共存容器,一个用于核心功能,另一个用于支持分析,监控,数据库服务,日志记录等活动。
Labels用于逻辑构造和组织一组对象,Labels用于搜索不同逻辑或物理对象。
容器化环境中的基本构造:
集群上运行的容器
pod:一起工作的容器
Services:一起工作的pod
Labels:用于组织服务
Kubernetes承诺将云本地基础组件集中在一起,并提供将应用程序扩展到企业级的能力。通过容器的广泛支持,Kubernetes可根据您的应用需求提供更多的灵活性来选择容器。
随着Java,Go,.Net等广泛的编程语言和框架支持,Kubernetes已经得到了开发社区的大力支持。 Kubernetes内置支持各种数据库,ETL系统和大数据分析。
容器可以在任何地方安装和运行。 Kubernetes完全与供应商无关,并得到Google Compute Engine,Vagrant,RackSpace,CoreOS,Fedore,Azure,AWS和vSphere等多个云提供商的支持。它是GitHub中最活跃的项目之一。
Kubernetes可跨越不同的云可移植,并提供响应快速有效地增加客户需求的能力。应用程序可以按需扩展,应用程序的部署可以更快,更具预测性,为开发人员提供更多更多增强功能和新功能的灵活性,而无需在公共或私有云环境中使用大量资源。
译者观点:
目前各大主流公有云都提供K8S支持,K8S和OpenStack在架构上也有许多想通的地方,可以借鉴复用OpenStack在网络存储方面的许多技术。而且K8S和应用更接近,部署容器云比部署基于虚拟化的云理论上效率更高,收益更好。
欢迎加入OpenStack vs Kubernetes 群,一起交流技术,申请表填写
扫描二维码
↓↓ 点击"阅读原文" 【加入云技术社区】
相关阅读:
更多文章请关注