什么是Kubernetes?

来源:ibm中国 作者:网友

您一定听说过 Kubernetes,但它到底是什么?您能否向上司解释清楚它是什么?或者向您的同事?或者向您的小狗

 

Kubernetes 是 Google 开发的一个开源容器管理工具(可在 GitHub 中获取源代码),人们使用它已有 15 年。但这意味着什么?为什么您应该关注它

 

我们首先列出在容器集群中运行应用程序的一些问题。然后展示 Kubernetes 不是什么。最后,展示 Kubernetes 如何解决前面提出的问题。

 

完成学习后,您应该能够清楚地解释 Kubernetes,让您的上司和同事对您佩服到五体投地

 

问题

本节将介绍在集群化环境中运行基于容器的应用程序时您将面临的 3 个问题。任何解决方案都需要解决这些问题(剧透一下:Kubernetes 可以做到!)。

 

调度

您已经获得了这个卓越的基于容器的应用程序?太棒了!现在您需要确保它在计划的正确的时间和位置运行。让您的应用程序在集群中正确的机器上运行很重要,但集群中的所有机器不一定都是一样的

 

负载平衡

您的应用程序在正常运行。很好!现在,您需要确保客户端的负载均衡地分布在集群中的节点上。应用程序要以最佳的方式使用每个主机上的资源来处理客户端负载,这很重要。您也不想让一些容器全速运行,而其他容器却坐视不管吧

 

应用程序扩展

您的容器正在运行,而且客户端负载在它们之间得到了很好的平衡。太好了!现在,您需要能让一些容器上线来处理负载(和需求高峰),并在不再需要它们时终止它们。能够根据客户端的需求来处理负载高峰是非常重要的

 

集群管理和监控

现在,您的应用程序正在这个巨大的集群上高效运行,您需要管理它。您需要定义、启动、扩展、平衡负载和监控正在运行的容器的健康情况。这不是一项轻松的任务

 

Kubernetes 不是什么

平台即服务 (PaaS)

尽管 Kubernetes 具有 PaaS 产品所拥有的许多功能,比如存储管理和集群日志记录和监控。但是,Kubernetes 不是真正的 PaaS 产品,因为它没有提供像操作系统这样的组件,也没有供 Java 和 Docker 等支持工具。但是,Kubernetes 能与 PaaS 产品(比如 Bluemix 和OpenShift)紧密集成。

 

一个数据处理框架

Kubernetes 是一个绝对适合运行大数据应用程序的框架,但不会执行(或提供服务来执行)与像 Apache Spark 和 Hadoop Map/Reduce 这样的数据处理框架相同的功能。但,Kubernetes 能与 Spark 和 Hadoop 紧密集成(仅列举了两个例子)。

 

持续集成

Kubernetes 不会像 Jenkins 和其他 CI 工具一样构建应用程序的容器,但它能与 CI 紧密结合(让人惊喜!),帮助管理应用程序在其生命周期中演化的更新

 

解决方案

Kubernetes 解决了上面列出的所有问题(您没有感到震惊,对吗?)在下一节中,我将介绍如何解决这些问题,在此过程中还会介绍一些 Kubernetes 术语

 

调度

Kubernetes Pod 是一组容器,它们协同执行一个应用程序功能(或一组功能),是Kubernetes 中的调度单元。

 

创建一个 Pod 时,调度程序会查找最合适运行它(集群中的主机)。这由 kube-scheduler 组件处理,该组件会选择集群中的候选节点,确保该节点提供的资源与该 Pod 中的容器所需的资源相匹配。

 

负载平衡

Kubernetes 服务是对提供了相同功能的 Pod(称为副本)的逻辑分组,用于将 Pod 副本与它们的客户端解耦。

 

在 Kubernetes 中,负载平衡默认情况下由服务处理。对于每个服务,您可以提供一个标签选器来识别 Pod 的副本。因为副本的物理位置无关紧要,所以需要其功能的客户端既不知道也不关心它们实际在何处运行。调度程序使用标签选择器为请求选择正确的服务,确保客户端负载始终得到平衡

 

在一些受支持的云环境中,比如 IBM Bluemix Container 服务、Google Compute Engine (GCE) 和 Amazon Web Services (AWS),可通过将服务类型指定为 LoadBalancer,将一个服务配置为使用云提供商的负载平器。

 

应用程序扩展

Kubernetes 副本控制器可确保指定数量的 Pod 副本始终在集群中运行。

 

副本控制器会处理应用程序的扩展,确保您想要运行的副本数量实际上始终在运行。如果副本数量太少(可能有一两个副本因为某种原因而终止了),副本控制器会启动更多副本,直到达到目标数量。如果运行的副本太多(在自动扩展的情况下),副本控制器会结束一些副本

 

集群管理和监控

Kubernetes 仪表板是一个用于监控的基于 Web 的 UI,您可在其中的屏幕中管理正在运行的Pod,查看 CPU 和内存使用情况等指标。默认情况下没有部署该仪表板,但借助 kubectl 命令,可以部署并开始使用它:

 

kubectl create -f https://rawgit.com/kubernetes/dashboard/master/src/deploy/kubernetes-dashboard.yaml

 

 

结束语

您应该对 Kubernetes 解决的问题和它解决问题的方式有了更好的了

 

在下一次员工会议中,您对 Kubernetes 的(深入)理解一定会让上司和同事们钦佩不已。如果在您解释之后,他们没有对您佩服的五体投地,或许您需要换一份新工作了。但至少您的小狗仍会喜欢您

 

参考资料和其他 Kubernetes 资源

在整篇文章中,我提供了一些链接来帮助您进一步了解 Kubernetes,但是我还想在这里提供一些更有概述性的文章链接。请尽情的阅读吧

  • 来源:https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/

  • IBM Bluemix Container 服务 – 一种用于快速构建认知应用程序的高度安全、原生的Kubernetes 体验

  • 扩展容器:容器集群基础指南

  • Kubernetes 和 IBM Bluemix:如何部署、管理和保护基于容器的工作负

  • 比较其他容器集群管理工具

  • K8s 调度程序


相关文档推荐

T GDWJ 016 公立医院全面预算管理工作指南.PDF

1743652887  1.62MB 79页 积分6

AI时代的管理者全球思维.PDF

1743585702 邓子梁 1.89MB 16页 积分5

离散制造破局之道主数据管理平台重构.PDF

1742450737 詹慧超 4.6MB 37页 积分6

DEEPSEEK对企业财务管理的影响.PDF

1740034311 陈亚盛 3.89MB 60页 积分8

推倒部门墙跨部门沟通与有效合作.PPTX

1739245187 邱明俊 1.49MB 73页 积分10

跨部门沟通与协作.PPTX

1739245160  0.11MB 32页 积分6

跨部门沟通与协作.PPTX

1739245127  0.69MB 60页 积分8

相关文章推荐