0Pricing
DevOps Bootcamp · 课时

Pod:最小单元

了解 Pod 是什么、它的用途,以及如何使用 YAML 清单定义和创建 Pod。

Pod:最小单元 是 CoddyKit 上的免费 DevOps Bootcamp 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 DevOps Bootcamp 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 DevOps Bootcamp 课程共包含 4 节课。

欢迎来到容器组!

在 Kubernetes 中,最小的可部署单元称为容器组。您可以把它看作应用的基本构建块。

本课将介绍容器组、它们的用途,以及如何使用 YAML 创建容器组。

Pod:最小单元 — 插图 1

什么是容器组?

容器组是一种抽象概念,代表应用的一个实例。它包含一个或多个容器,以及共享资源。

  • 容器:通常是运行应用代码的 Docker 容器。
  • 存储:用于持久化数据的共享存储卷。
  • 网络:容器组独有的 IP 地址和网络配置。

为什么使用容器组,而不仅仅是容器?

您可能会想,为什么 Kubernetes 使用容器组,而不是直接管理容器。原因如下:

  • 共享资源:容器组中的容器共享同一个网络命名空间,并且可以通过 localhost 进行通信。
  • 共同部署:确保紧密耦合的容器(例如应用和其日志边车容器)始终一起调度到同一个节点上。
  • 抽象:容器组提供了更高层次的抽象,使得整体管理应用比管理单个容器更加容易。

简单容器组的构成

大多数容器组只运行一个容器,这是最常见的使用场景。例如,一个容器组可以只运行 Nginx Web 服务器或 Node.js 应用。

即使只有一个容器,容器组也会提供网络和存储上下文,使其成为完整的部署单元。

使用 YAML 定义容器组

包括容器组在内的 Kubernetes 对象通常使用 YAML(YAML Ain't Markup Language)文件定义。这些文件描述资源的期望状态。

基本的容器组 YAML 包含:

  • apiVersion:Kubernetes API 版本。
  • kind:Kubernetes 对象的类型(例如 Pod)。
  • metadata:包含容器组的 name 和 labels 等信息。
  • spec:期望状态,包括要运行的容器。

示例:Nginx 容器组 YAML

让我们看看运行 Nginx Web 服务器的简单容器组 YAML 定义。

spec.containers 部分定义容器组中的容器,包括它们的 name、image 和 ports。

apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod
  labels:
    app: web
spec:
  containers:
  - name: nginx
    image: nginx:latest
    ports:
    - containerPort: 80

创建您的第一个容器组

要从 YAML 文件创建容器组,请使用 kubectl apply 命令。此命令会告诉 Kubernetes 根据您的定义创建或更新资源。

首先,将之前的 YAML 内容保存到名为 nginx-pod.yaml 的文件中。

kubectl apply -f nginx-pod.yaml

检查容器组状态

应用 YAML 后,您可以使用 kubectl get pod 检查容器组的状态。它应该显示容器组处于 Running 状态。

要获取更详细的信息,包括事件和容器状态,请使用 kubectl describe pod。

kubectl get pod nginx-pod
kubectl describe pod nginx-pod

多容器组(边车)

虽然单容器组很常见,但一个容器组也可以容纳多个容器。这些容器通常紧密耦合并共享资源。

一种常见模式是“边车”容器,它与主应用容器一起运行,提供日志记录、监控或数据同步等辅助服务。

我们将在后续课程中更详细地探讨这种模式!

容器组定义检查

以下哪一项不是基本 Kubernetes 容器组 YAML 定义中必需的顶层字段?

复习:容器组——基础

您已经了解到,容器组是 Kubernetes 中最小的可部署单元,封装了容器、存储和网络资源。

  • 容器组对容器进行抽象,从而支持资源共享和共同部署。
  • YAML 文件使用 apiVersion、kind、metadata 和 spec 定义容器组。
  • 您可以使用 kubectl apply -f <filename> 创建容器组,并使用 kubectl get pod 和 kubectl describe pod 检查它们。

接下来,我们将深入了解这些基础构建块的生命周期和状态!

常见问题解答

「Pod:最小单元」课时是免费的吗?

是的 — 「Pod:最小单元」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 DevOps Bootcamp 课程的其余内容,请升级到 CoddyKit PRO。 DevOps Bootcamp 课程共包含 4 节课。

「Pod:最小单元」这节课中我会学到什么?

了解 Pod 是什么、它的用途,以及如何使用 YAML 清单定义和创建 Pod。 你通过在浏览器中直接运行的动手代码来练习 DevOps Bootcamp,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 DevOps Bootcamp 需要有经验吗?

无需任何先前经验。CoddyKit 上的 DevOps Bootcamp 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「Pod:最小单元」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 DevOps Bootcamp 课中编写并运行代码吗?

能。每节 DevOps Bootcamp 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. Pod:最小单元
  2. Pod 生命周期与状态
  3. 多容器 Pod(Sidecar)
  4. Init 容器与启动顺序
← 返回 DevOps Bootcamp