问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Kubernetes 集群核心概念:Pod

创作时间:
作者:
@小白创作中心

Kubernetes 集群核心概念:Pod

引用
CSDN
1.
https://blog.csdn.net/zhangshenglu1/article/details/144088876

一、工作负载(Workloads)

工作负载 是在 Kubernetes 集群中运行的应用程序。无论是单一服务还是多个服务协同运行,都可以通过 Pod 来承载和运行。

1.1 工作负载的组成

工作负载由 PodControllers(控制器) 组成:

  • Pod:承载应用容器,提供运行环境。
  • Controllers:管理 Pod 的生命周期,控制其扩缩容、升级、故障恢复等操作。
Pod 与 Controller 关联方式:
  • Label-Selector(标签选择器):Pod 与 Controller 通过标签选择器关联。每个 Controller 根据指定的标签选择对应的 Pod。

示意图:

1.2 配置示例

定义 Pod 标签:
labels: 
  app: nginx
定义 Controller 标签选择器:
selector:
  matchLabels:
    app: nginx

二、Pod 介绍

2.1 Pod 定义与分类

2.1.1 Pod 定义
  • Pod 是 Kubernetes 中的最小计算单元,表示一组容器的运行实例。
  • Pod 不是进程,而是容器运行的环境。
  • 一个 Pod 可以包含:
  • 单个容器
  • 多个容器,如主容器和辅助容器(Sidecar)。
  • 共享资源:同一 Pod 内的容器共享网络、存储、命名空间等资源。
  • 调度策略:默认情况下,Pod 会被调度到工作节点(Node)上,而非 Master 节点。
2.1.2 Pod 分类
  • 静态 Pod
  • 由本地节点上的 kubelet 直接管理,通常不通过 API 服务器。
  • 适用于特定场景,如集群核心组件。
  • 直接监控和管理静态 Pod 配置文件,一旦崩溃会自动重启。
  • 控制器管理的 Pod
  • 由 Controller(如 Deployment、StatefulSet)管理。
  • 支持扩容、缩容、滚动更新等高级功能。

2.2 查看 Pod 方法

可以使用 kubectl 命令查看 Pod 资源:

# 查看所有 Pod(默认命名空间)
kubectl get pod

# 查看 kube-system 命名空间下的 Pod
kubectl get pod -n kube-system

2.3 Pod 的 YAML 资源清单格式

以下是 Pod 定义文件的示例与字段说明:

apiVersion: v1            # API 版本
kind: Pod                 # 资源类型
metadata:                 # 元数据
  name: nginx-pod         # Pod 名称
  namespace: default      # 命名空间
  labels:                 # 自定义标签
    app: nginx
spec:                     # 规范定义
  containers:             # 容器列表
- name: nginx           # 容器名称
    image: nginx:latest   # 容器镜像
    ports:                # 容器端口
- containerPort: 80   # 暴露端口
    resources:            # 资源限制
      limits:
        cpu: "500m"       # 限制 CPU
        memory: "128Mi"   # 限制内存
    env:                  # 环境变量
- name: ENV_VAR
      value: "value"
  restartPolicy: Always   # 重启策略

2.4 常用命令解释

使用 kubectl explain 命令可以查询资源的详细字段信息:

# 查看 Pod 资源定义
kubectl explain pod

# 查看 Pod 规范部分
kubectl explain pod.spec

# 查看容器部分
kubectl explain pod.spec.containers
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号