术语表
共 55 个词条。读章节时遇到不认识的词,先来这里查一句话解释, 再点右侧链接跳到讲它的那一章。
核心对象
日常打交道最多的资源类型,按「承载什么」分组。
- Pod
最小调度单元,一个或多个共享网络与存储命名空间的容器组合。Pod 是一次性的,不要直接长期管理。
→ 在《第一个 Pod:kubectl 常用操作》中学习- Deployment
无状态工作负载控制器,管理 ReplicaSet,负责副本数与滚动更新、回滚。
→ 在《Deployment:副本、滚动更新与回滚》中学习- ReplicaSet
保证某一批 Pod 的副本数量符合期望。通常由 Deployment 创建,不直接手写。
→ 在《Deployment:副本、滚动更新与回滚》中学习- StatefulSet
有状态工作负载:Pod 有稳定名称、稳定网络标识和独立存储,适合数据库类应用。
→ 在《存储卷与 PV/PVC:让数据活过 Pod 重启》中学习- DaemonSet
在(几乎)每个节点上各跑一个 Pod,常用于日志采集、节点监控、网络插件。
→ 在《调度入门:把 Pod 放到合适的节点上》中学习- Job / CronJob
Job 跑一次性任务并保证成功;CronJob 按 cron 表达式周期性创建 Job。
→ 在《Job 与 CronJob:批处理与定时任务》中学习- Service
给一组 Pod 提供固定虚拟 IP 与 DNS 名,并做四层负载均衡,解决 Pod IP 会变的问题。
→ 在《Service 与集群内 DNS》中学习- Ingress
七层入口规则:按域名和路径把外部请求转发到不同 Service,需要 Ingress Controller 才能生效。
→ 在《Ingress:从外部访问集群服务》中学习- ConfigMap
存放非敏感配置的键值数据,可以注入为环境变量或挂载成文件。
→ 在《ConfigMap 与 Secret:把配置从镜像里拿出来》中学习- Secret
存放敏感数据的对象。注意 base64 只是编码不是加密,生产应配合外部密钥管理。
→ 在《ConfigMap 与 Secret:把配置从镜像里拿出来》中学习- Namespace
集群内的逻辑隔离边界,用于分组资源、配合配额与 RBAC;不提供网络隔离。
→ 在《命名空间与 RBAC:多人共用一个集群》中学习- PersistentVolumePersistentVolume (PV)
集群级别的存储资源,代表一块真实的存储(本地盘、云盘、Ceph 卷等)。
→ 在《存储卷与 PV/PVC:让数据活过 Pod 重启》中学习- PersistentVolumeClaimPersistentVolumeClaim (PVC)
用户对存储的「申请单」:要多大、什么访问模式。由 StorageClass 动态供给绑定到 PV。
→ 在《存储卷与 PV/PVC:让数据活过 Pod 重启》中学习- StorageClass
描述「用哪种存储、怎么供给」的模板,决定 PVC 背后由谁创建 PV 以及参数。
→ 在《生产存储:CSI、Rook/Ceph 与本地盘方案》中学习- ServiceAccount
Pod 访问 API Server 时使用的身份,配合 RBAC 决定它能做什么。
→ 在《命名空间与 RBAC:多人共用一个集群》中学习- NetworkPolicy
Pod 级别的网络访问控制,需要 CNI 支持才生效;默认拒绝 + 按需放行是最佳实践。
→ 在《集群网络:CNI 选型与 NetworkPolicy》中学习- HPAHorizontalPodAutoscaler
根据 CPU/内存或自定义指标自动调整副本数。
→ 在《探针与资源管理:让集群理解你的应用》中学习
集群组件
控制平面与节点上真正干活的东西。
- kube-apiserver
集群唯一入口:认证、鉴权、准入校验,然后读写 etcd。所有组件都只跟它对话。
→ 在《集群架构:控制平面与工作节点》中学习- etcd
分布式键值存储,保存全部集群对象,是唯一真相来源;对磁盘 fsync 延迟敏感。
→ 在《生产集群部署:从节点规划到 kubespray》中学习- kube-scheduler
为未分配节点的 Pod 选节点:先过滤再打分,最后写入绑定结果。
→ 在《调度入门:把 Pod 放到合适的节点上》中学习- kube-controller-manager
运行一批控制器(Deployment、ReplicaSet、Node、EndpointSlice 等),不断把现实拉回期望。
→ 在《集群架构:控制平面与工作节点》中学习- kubelet
节点上的执行者:领取本节点的 Pod,调用容器运行时启动容器,执行探针并上报状态。
→ 在《集群架构:控制平面与工作节点》中学习- kube-proxy
把 Service 的虚拟 IP 翻译成节点上的转发规则(iptables/IPVS),部分集群由 eBPF 方案替代。
→ 在《集群网络:CNI 选型与 NetworkPolicy》中学习- CoreDNS
集群内 DNS 服务,把 Service 名解析成 ClusterIP;新 Pod 的 resolv.conf 指向它。
→ 在《Service 与集群内 DNS》中学习- CNIContainer Network Interface
容器网络接口标准。CNI 插件负责给 Pod 分配 IP、接通网络并执行网络策略。
→ 在《集群网络:CNI 选型与 NetworkPolicy》中学习- CSIContainer Storage Interface
容器存储接口标准。CSI 驱动让 Kubernetes 能对接不同存储后端并支持动态供给、快照、扩容。
→ 在《生产存储:CSI、Rook/Ceph 与本地盘方案》中学习- CRIContainer Runtime Interface
kubelet 与容器运行时之间的接口,主流实现是 containerd,Docker 不再直接参与。
→ 在《集群架构:控制平面与工作节点》中学习- metrics-server
提供 `kubectl top` 与 HPA 所需的基础资源指标,不做长期存储。
→ 在《探针与资源管理:让集群理解你的应用》中学习- EndpointSlice
Service 后端的真实 Pod 地址列表(取代已弃用的 Endpoints),只包含就绪的 Pod。
→ 在《Service 与集群内 DNS》中学习
概念与机制
理解行为背后的设计思想,比记命令更重要。
- 声明式Declarative
只描述「期望的最终状态」,由系统负责达成;与之相对的是一步步下命令的命令式做法。
→ 在《为什么需要 Kubernetes》中学习- 控制器Controller
一个「watch 对象 → 比较期望与实际 → 采取动作」的循环。Kubernetes 的一切都靠它纠偏。
→ 在《集群架构:控制平面与工作节点》中学习- 期望状态Desired State
你写进 YAML 的 spec;现实状态记录在 status,控制器负责让两者一致。
→ 在《用 YAML 描述 Pod:清单结构详解》中学习- 探针Probe
liveness(活着吗)、readiness(能接流量吗)、startup(启动完了吗)三种健康检查。
→ 在《探针与资源管理:让集群理解你的应用》中学习- 滚动更新Rolling Update
逐个替换旧 Pod 的发布方式,由 maxSurge / maxUnavailable 控制替换节奏,保证不中断。
→ 在《Deployment:副本、滚动更新与回滚》中学习- QoS 类别Quality of Service Class
根据 requests/limits 的填写情况分为 Guaranteed、Burstable、BestEffort,决定资源紧张时谁先被驱逐。
→ 在《探针与资源管理:让集群理解你的应用》中学习- 污点与容忍Taint & Toleration
节点上的污点排斥 Pod,Pod 的容忍表示「我能接受这个污点」,两者配合决定能否调度。
→ 在《调度入门:把 Pod 放到合适的节点上》中学习- 亲和性Affinity
比 nodeSelector 更灵活的调度约束:required 是硬条件,preferred 是软偏好。
→ 在《调度入门:把 Pod 放到合适的节点上》中学习- 驱逐Eviction
节点资源不足时 kubelet 主动赶走 Pod(常见原因是内存),状态显示 Evicted。
→ 在《排障手册:出问题先看哪里》中学习- 不可变字段Immutable Field
创建后不能修改的字段(如 Deployment 的 selector),改了只能删除重建。
→ 在《Deployment:副本、滚动更新与回滚》中学习- 动态供给Dynamic Provisioning
PVC 创建后由 StorageClass 自动创建并绑定 PV,不需要管理员预先准备。
→ 在《存储卷与 PV/PVC:让数据活过 Pod 重启》中学习- 回收策略Reclaim Policy
PVC 删除后 PV 的处理方式:Delete 会删掉后端存储,Retain 会保留数据供手工处理。
→ 在《生产存储:CSI、Rook/Ceph 与本地盘方案》中学习
工具与生态
本地开发、部署与生产运维会用到的常见工具。
- kubectl
Kubernetes 官方命令行客户端,一切操作的起点。
→ 在《搭一个本地集群:kind 与 kubectl 上手》中学习- kubeconfig
保存集群地址、证书与上下文(context)的配置文件,默认在 ~/.kube/config。
→ 在《搭一个本地集群:kind 与 kubectl 上手》中学习- kind
Kubernetes in Docker:用容器当节点,几十秒起一个本地集群,适合学习和 CI。
→ 在《搭一个本地集群:kind 与 kubectl 上手》中学习- minikube
另一种本地集群方案,内置常用插件(如 ingress、dashboard),上手更省事。
→ 在《搭一个本地集群:kind 与 kubectl 上手》中学习- Helm
Kubernetes 的包管理器,把一组 YAML 模板化成可复用、可版本化、可回滚的 chart。
→ 在《Helm 入门:把一堆 YAML 变成可复用的 chart》中学习- Chart / Release
Chart 是模板包,Release 是 chart 在集群里的一次安装实例。
→ 在《Helm 入门:把一堆 YAML 变成可复用的 chart》中学习- kubespray
基于 Ansible 的生产集群部署工具,支持高可用控制面与多种网络插件。
→ 在《生产集群部署:从节点规划到 kubespray》中学习- Cilium
基于 eBPF 的 CNI 与网络策略实现,可替代 kube-proxy,并自带 Hubble 可观测能力。
→ 在《集群网络:CNI 选型与 NetworkPolicy》中学习- MetalLB
为裸金属集群实现 LoadBalancer 类型的 Service,支持 L2 与 BGP 模式。
→ 在《集群网络:CNI 选型与 NetworkPolicy》中学习- Rook / Ceph
Rook 是 Ceph 在 Kubernetes 上的 Operator,把分布式存储变成可声明管理的资源。
→ 在《生产存储:CSI、Rook/Ceph 与本地盘方案》中学习- Prometheus
拉取式指标系统与查询语言 PromQL,是 Kubernetes 生态的事实标准。
→ 在《可观测性:指标、日志与告警》中学习- VictoriaMetrics
兼容 PromQL 的时序数据库,存储效率高、单机部署简单,常作为替代方案。
→ 在《可观测性:指标、日志与告警》中学习- Grafana
可视化与看板工具,把指标、日志查询结果画成图表并支持告警。
→ 在《可观测性:指标、日志与告警》中学习- Alertmanager
处理 Prometheus 告警的去重、分组、静默与路由,决定「谁在什么时候被叫醒」。
→ 在《可观测性:指标、日志与告警》中学习