Logo
Section 1 / 7

简介

Pods 的概述。

导入

简介

Pods 的概述。

Pod 简介

Pod 是应用程序运行的地方,它是 Kubernetes 中的基本构建单元,也是调度的原子单位。
每个 Pod 包含一个或多个容器,每次在 Kubernetes 中运行容器时,都必须将其放入一个 Pod 中。

...
Pod 概览

Pod 是调度的原子单位

需要明确的是,Pod 是 Kubernetes 中调度的最小单位。因此,如果我们想运行 10 个应用副本,应该创建 10 个 Pod,而不是在一个 Pod 中运行 10 个容器。当我们开始讨论部署(Deployments)时,会看到更多这方面的实际例子。

...
Pod 的调度

回顾之前的示例,我们有一个如下结构的清单文件:

1apiVersion: v1 2kind: Pod 3metadata: 4 name: nginx 5spec: 6 containers: 7 - name: nginx-container 8 image: nginx

可以看到,kind 字段表明这是一个 Pod 的定义。metadata 部分用于指定该 Pod 的唯一名称(这里是 nginx),而 spec 部分则定义了要在该 Pod 中运行的内容。在此例中,我们运行一个名为 nginx-container 的容器,并指定其使用的 Docker 镜像为 nginx。

大多数清单文件都遵循类似的格式。虽然还可以定义其他字段,但以上内容已是最小配置,足以启动一个 Pod。

镜像从哪里来?

在这个清单中,我们指定了 nginx 作为要运行的 Docker 镜像名称,但并未说明 Kubernetes 应该去哪里查找这个镜像。

就像我们可以将代码仓库存储在 GitHub 或 GitLab 等服务中一样,也可以将镜像存储在 Docker 注册中心中。如果没有特别指定注册中心,Kubernetes 默认会认为我们要使用 DockerHub。

如果希望更明确地指定,可以修改清单文件,使用完整的镜像路径:

1apiVersion: v1 2kind: Pod 3metadata: 4 name: nginx 5spec: 6 containers: 7 - name: nginx-container 8 image: registry.hub.docker.com/library/nginx

或者,如果你使用的是其他镜像服务(例如 ECR),也可以指定其完整路径:

1apiVersion: v1 2kind: Pod 3metadata: 4 name: nginx 5spec: 6 containers: 7 - name: nginx-container 8 image: public.ecr.aws/nginx/nginx

运行下方的小工具,并使用以下命令创建你的 Pod:

1kubectl apply -f nginx.yaml

No configuration found for ID: bd72710c271ac4976e70b9951d52031104cca35669bf24f2eef7b650600b6688

注意: 请运行 kubectl get pods 命令以检查你的 Pod 状态。

使用 ConfigMaps 配置应用程序

多容器Pod