k8s 资源对比总结

发布于:2025-05-12 ⋅ 阅读:(22) ⋅ 点赞:(0)

以下是 Kubernetes 中常见核心资源的对比表格,帮助理解它们的用途和差异:

1. 核心工作负载资源对比

资源类型 主要功能 副本管理 适用场景 关键字段/特性
Pod 最小部署单元,封装容器 单容器/多容器协作 containers, volumes
Deployment 管理 Pod 副本和滚动更新 无状态应用(如 Web 服务) replicas, strategy
ReplicaSet 确保指定数量的 Pod 副本运行 通常由 Deployment 自动管理 replicas, selector
StatefulSet 管理有状态应用的 Pod(唯一标识和顺序) 数据库(如 MySQL、Redis) serviceName, volumeClaimTemplates
DaemonSet 每个节点运行一个 Pod。也可以通过 Label、Selector 实现在指定节点上运行 Pod。 节点级服务(如日志采集) nodeSelector, tolerations
Job 运行一次性任务 批处理任务 completions, backoffLimit
CronJob 定时运行 Job 定时任务(如每日备份) schedule, startingDeadlineSeconds

2. 网络资源对比

资源类型 主要功能 适用场景 关键字段/特性
Service 暴露 Pod 的稳定 IP 和端口 内部服务访问 selector, type (ClusterIP, NodePort, LoadBalancer)
Ingress 提供 HTTP/HTTPS 路由规则 外部访问(域名和路径映射) rules, tls
Endpoint 记录 Service 后端 Pod 的 IP 列表 动态更新 Service 的关联 Pod 自动生成,无需手动配置

3. 配置与存储资源对比

资源类型 主要功能 适用场景 关键字段/特性
ConfigMap 存储非敏感配置数据(键值对或文件) 配置文件、环境变量 data, binaryData
Secret 存储敏感数据(如密码、证书) 加密存储敏感信息 data (base64 编码)
PV (PersistentVolume) 集群级别的存储资源 抽象存储设备(如 NFS、云盘) capacity, accessModes
PVC (PersistentVolumeClaim) Pod 对存储资源的请求 绑定 Pod 与 PV resources.requests.storage

4. 其他关键资源

资源类型 主要功能 适用场景
Namespace 逻辑隔离集群资源(如开发、生产环境) 多租户资源隔离
HPA (HorizontalPodAutoscaler) 自动扩缩容 Pod 副本数 动态调整负载(基于 CPU/内存)
Role/RoleBinding 定义 RBAC 权限规则 控制用户或服务的访问权限

5.对比总结

  • 工作负载管理
    • 无状态应用:用 Deployment
    • 有状态应用:用 StatefulSet
    • 节点级服务:用 DaemonSet
    • 批处理任务:用 Job/CronJob
  • 网络与访问
    • 内部访问:用 Service
    • 外部访问:用 Ingress + Service
  • 配置与存储
    • 配置文件:用 ConfigMap
    • 敏感数据:用 Secret
    • 持久化存储:用 PV + PVC
  • 扩展与安全
    • 自动扩缩容:用 HPA
    • 权限控制:用 Role + RoleBinding

6.示例场景

  1. 部署一个 Web 应用
    • 使用 Deployment 管理 Pod 副本。
    • 使用 Service (ClusterIP) 暴露内部访问。
    • 使用 Ingress 配置外部域名访问。
    • 使用 ConfigMap 挂载配置文件。
  2. 运行一个数据库
    • 使用 StatefulSet 管理有状态 Pod。
    • 使用 PVC 绑定持久化存储。
    • 使用 Secret 存储数据库密码。

网站公告

今日签到

点亮在社区的每一天
去签到