Kubernetes Explained Simply: Containers, Pods and Images

409 阅读3分钟

原文:css-tricks.com/kubernetes-…

Kubernetes 是一个开源容器编排系统,用于自动化计算机应用程序的部署、扩展和管理。 ——维基百科

简单来说,容器就像一台虚拟计算机,你可以远程创建、使用、销毁和重启。

现在想象一下这台计算机实际上是在云中,与数千台其他虚拟计算机一起运行。所有这一切都在一台真正强大的计算机上运行。您的计算机现在是云中的容器

但是等等 — 你将如何创建和控制这台虚拟计算机?它将如何与同一云中的其他计算机通信?它将如何与世界沟通?听起来您需要一种方法来协调所有这些。因此:我们的大师,Kubernetes(或简称 K8s)

A cloud with five computers labeled “Container” and a maestro below it labeled “K8s”

您可能还听说过豆荚这个词。这些是什么,它们适合这里的什么地方?好吧,简单地说,pods 是一组一个或多个容器。它们是 K8s 中最小的可部署单元,就像一个原子。

想象一下,您正在构建一个 WordPress 网站,并且需要一台运行 PHP 和 MySQL 数据库的计算机。在同一台计算机上运行两者可能太重了;所以你可以改为为 PHP 创建一个容器,为 MySQL 创建一个容器,K8s 将帮助它们进行通信。

然后,您将这两个容器分组到一个 pod 中,它代表整个应用程序。这意味着您现在可以通过 pod 启动和终止整个应用程序。

Cloud with circle inside it labeled “Pod” and two computers inside it each labeled “PHP” and “MySQL”

您可能不会只创建一个 pod 来在生产中部署应用程序,尽管 — 我们现在不需要介绍更多内容,但您可以在 K8s 文档中阅读有关 pod 的更多信息。

现在是提问的好时机:在这种设置中部署应用程序时会发生什么?

K8s 创建一个新的 pod,将流量重定向到它,当它确定一切正常时,它会杀死旧的 pod。同样,更多实体参与控制和重定向请求,但我们今天将其排除在外。

但是,有时部署会破坏某些内容,我们必须将应用程序回滚到以前的版本。想象一下,一切都着火了,我们必须从头开始启动所有这些计算机 — 安装 Linux、Node、Git,克隆存储库,安装依赖项,构建应用程序……这将花费很长时间!要是有更快的方法就好了,比如从过去拍摄快照以快速将所有内容恢复到......

输入:图像!您可能也经常听到这个词。一个镜像就像一个容器的备份,所有东西都已经安装和配置好了。每次推送到存储库的主分支时,都会使用持续集成 (abbr>CI) 生成一个新映像,然后在创建新容器时将其复制到新容器中。

它们有什么用?嗯,主要有两件事:第一件事是快速恢复到以前的图像,就像我们上面的例子一样。但是,当您的网站有大量流量并且只有一台计算机无法处理时,它们也很有用。

当您拥有一个镜像时,您可以根据需要创建任意数量的相同容器,并在所有容器中复制该镜像,提供完全相同的内容。

Four computers all equally labeled “Commit d406cht”

全部完成!我们刚刚介绍了应用程序基础架构如何工作的基础知识,现在希望您可以推断出您的项目正在使用的任何工具。

from comments -----------------------------
Docker 是容器创建和运行应用程序、运行时、镜像构建等的集合,除了提供基本控制之外,它没有做太多事情,K8s 管理您的容器更多,日志聚合,负载平衡,缩放,监控等