什么是 Kubernetes?

Open source resources

Opensource.com

过去,网站只不过是放置在一个文件夹中并与世界共享的文本文件。它们会被下载并在网络浏览器中显示,这就是交易的全部内容。后来事情变得更加复杂,网站变成了代码的运行实例。这使得程序员能够建立只能称为“Web 应用程序”的东西,例如购物车、登录门户、在线电子邮件客户端、图像编辑器等等。

一旦网络开始运行应用程序,系统工程师和架构师开始意识到网络本身本质上是一台超级计算机。正如您在同时运行多个应用程序时必须管理笔记本电脑上的资源一样,也必须管理互联网这台超级计算机节点上的资源。

在大型机时代,计算时间是相对可预测的。人们实际上是安排计算机的使用时间,因此资源是按先到先得的原则管理的。但这无法扩展到数十亿用户,他们中的任何人都可能在任何给定时刻按需获得计算能力。后来,解决方案被认为是向上扩展:更多服务器运行更多应用程序实例意味着更多人可以在任何给定时间使用它们。不幸的是,在某个下午出现流量高峰的偶然情况下运行 100 台服务器可能会非常昂贵。因此,问题不仅仅是如何管理运行应用程序的服务器的资源,还在于如何根据出现的人数动态地管理这些资源。

什么是 Kubernetes?

Kubernetes(简称“K8s”)是一个开源解决方案,用于自动化容器化在线应用程序的部署和动态扩展。Kubernetes 使用容器,Linux 中的一个系统,它将应用程序分组到逻辑单元中,以便进行集中和安全管理。容器被设计为短暂的。容器可能会崩溃或死亡,而不会丢失用户数据,因为数据保存在容器外部。由于容器化应用程序被认为是可抛弃的,因此当大量用户需要应用程序时,服务器集群可以启动新的应用程序实例,或者当只有几百人需要应用程序时,只运行少量应用程序实例。系统管理员可以手动执行此操作,或者编写一系列脚本来监视流量并做出相应的响应,但 Kubernetes 使其自动化。

您可以安装 Kubernetes 用于测试或生产。如果您只是想学习 Kubernetes 或尝试构建基于云的应用程序,那么您可以在您的工作站或笔记本电脑上本地运行 Kubernetes、OpenShift 或 OKD。对于严肃的项目,您可以构建自己的集群,对于大规模生产,您可以安装 OKDKubernetes

Kubernetes 专为大型部署而设计。事实是,除非您的 Web 应用程序有太多用户访问导致性能下降,否则您可能不需要 Kubernetes。但是,在家中运行 Kubernetes 有很多充分的理由,而且随着 Kubernetes 越来越受欢迎,它变得越来越容易。

虽然 Kubernetes 使管理容器变得容易,但 Kubernetes 主要是一个 DIY 工具包。您可以(很多人也这样做)下载并完全按照开发方式运行 Kubernetes,但这通常意味着您最终将必须开发自己的工具来支持您的 Kubernetes 集群。有很多非常好的工具,包括 Kubash(集群的交互式 shell,用于帮助构建镜像和配置主机)、Konveyor(一个完整的工具链,用于帮助迁移和优化您的集群)、Helm(包管理器)等等。

什么是 OpenShift 和 OKD?

OpenShift 是一个为云构建的 Kubernetes 应用程序平台。OKD 是其开源上游项目。

现代基础设施正在转向 多云和混合云,但系统管理员和开发人员需要一个稳定且可预测的平台来作为目标。OKD 使架构师在选择基础设施运行的云时具有灵活性,它为管理员提供了对用户和资源管理的轻松访问,并让开发人员开发“knative”(Kubernetes 原生)和云就绪的应用程序。它是一个控制面板、一个抽象层和一个工具链的结合体。

OpenShift 和 OKD 是 Kubernetes 的发行版,因此管理员可以运行它们,并且仍然可以使用所有最常见的 Kubernetes 命令(kubectlkubeadm 等)。由于 Kubernetes 在 Linux 和 Linux 容器上运行并与之直接交互,因此管理员可以使用所有熟悉的 Linux 命令来管理底层操作系统。

Kubernetes 是如何工作的?

云上的应用程序在容器内运行。容器当然不是物理对象;它们只是一个软件概念,它将服务器上运行的进程组合在一起,以便它们可以共享某些资源。今天,容器通常由 CRI-OPodmanLXC 或 Docker 运行。

在运行应用程序时,Kubernetes 中的主要组织单元称为 Pod。Pod 是一组容器,它们在同一台机器、虚拟机或节点上一起管理,旨在能够轻松地相互通信。

[下载我们的电子书:Kubernetes 入门]

Pod 可以组织成 服务,这是一个协同工作的 Pod 组。这些可以使用标签系统进行组织,允许将有关 Pod 等对象的元数据存储在 Kubernetes 中。

所有这些部分都可以通过 API、OpenShift 或 OKD、预定义的指令或终端命令以一致且可预测的方式进行编排。

如何了解更多?

您可能想要学习 Kubernetes 和 OpenShift,因为您计划在 IT 行业找工作,或者您正在为一家渴望扩张的非营利组织做志愿者,或者您只是一个喜欢了解最新技术的爱好者。这是开源的,因此您需要的所有信息都在网上。但是,有大量信息需要处理。以下是一些建议阅读的内容,以帮助您学习


想要掌握微服务?了解如何在自定进度的动手实验室环境中运行 OpenShift 容器平台。

知识共享许可协议本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.