以下是 Kubernetes (k8s) 相关核心名词及其作用的分类整理,涵盖资源对象、核心概念和工具组件:
一、核心资源对象
| 名词 | 作用 |
|---|---|
| Pod | 最小调度单元,包含一个或多个容器(共享网络/存储) |
| Deployment | 管理无状态应用的副本集,支持滚动更新和回滚 |
| StatefulSet | 管理有状态应用(如数据库),保障Pod唯一性和持久存储 |
| DaemonSet | 在每个节点上运行一个Pod(如日志收集Agent) |
| Service | 为Pod提供稳定的IP和DNS,实现负载均衡和服务发现 |
| Ingress | 管理外部HTTP/HTTPS流量路由到集群内Service(支持域名和TLS) |
| ConfigMap | 存储非敏感配置(如环境变量) |
| Secret | 存储敏感数据(密码/TLS证书),Base64编码 |
| PersistentVolume (PV) | 集群级别的持久化存储资源(如云盘/NFS) |
| PersistentVolumeClaim (PVC) | Pod对PV的申请声明(指定大小和访问模式) |
| Namespace | 逻辑隔离资源(如production/development环境) |
二、核心概念
| 名词 | 作用 |
|---|---|
| Label | 键值对标签,用于资源分类(如app=frontend) |
| Selector | 根据Label筛选资源(Service通过Selector关联Pod) |
| Annotation | 存储非标识性元数据(如构建信息、监控配置) |
| ReplicaSet | 确保指定数量的Pod副本运行(通常由Deployment自动管理) |
| Horizontal Pod Autoscaler (HPA) | 根据CPU/内存或自定义指标自动扩缩容Pod数量 |
| Vertical Pod Autoscaler (VPA) | 自动调整Pod的CPU/内存请求限制(需谨慎使用) |
| Affinity/Anti-Affinity | 控制Pod调度策略(如分散部署或集中部署) |
| Taint & Toleration | 节点标记(Taint)和Pod容忍(Toleration),用于限制Pod调度节点 |
| Resource Quota | 限制Namespace的资源使用量(如CPU/内存/Pod数量) |
三、网络相关
| 名词 | 作用 |
|---|---|
| ClusterIP | Service的默认类型,仅在集群内部可访问 |
| NodePort | 通过节点端口暴露Service(范围30000-32767) |
| LoadBalancer | 云厂商提供的负载均衡器(自动分配外部IP) |
| NetworkPolicy | 控制Pod间网络流量(如只允许前端访问后端) |
| CNI插件 | 实现Pod网络(如Calico/Flannel/Weave) |
| Ingress Controller | 实际处理Ingress规则的组件(如Nginx/ALB/Traefik) |
四、存储相关
| 名词 | 作用 |
|---|---|
| StorageClass | 定义动态存储卷的供应方式(如AWS EBS/阿里云ESSD) |
| Volume | Pod挂载的存储(临时或持久化) |
| CSI (Container Storage Interface) | 标准化存储插件接口(支持第三方存储) |
五、安全相关
| 名词 | 作用 |
|---|---|
| ServiceAccount | 为Pod分配身份,用于API权限控制 |
| RBAC | 基于角色的访问控制(定义谁能在什么资源上执行什么操作) |
| PodSecurityPolicy (PSP) | 控制Pod的安全设置(如禁止特权容器,已逐步被替代) |
| SecurityContext | 在Pod/容器级别设置权限(如运行用户/只读文件系统) |
六、监控与运维
| 名词 | 作用 |
|---|---|
| Liveness Probe | 检测容器是否存活,失败则重启 |
| Readiness Probe | 检测容器是否就绪,失败则从Service摘流 |
| Metrics Server | 收集集群资源指标(供HPA和kubectl top使用) |
| Prometheus Operator | 监控方案,自动发现和采集指标 |
| Helm | Kubernetes的包管理工具(通过Charts部署复杂应用) |
| Kustomize | 原生配置管理工具(支持多环境差异化部署) |
| Operator | 扩展K8s API,自动化管理有状态应用(如ETCD Operator) |
七、架构组件
| 名词 | 作用 |
|---|---|
| kube-apiserver | 集群API入口,所有资源操作的唯一入口 |
| kube-scheduler | 决定Pod调度到哪个节点 |
| kube-controller-manager | 运行控制器(如Deployment/Node控制器) |
| kubelet | 节点代理,管理Pod生命周期 |
| kube-proxy | 维护节点网络规则(Service的IPVS/iptables实现) |
| etcd | 分布式键值存储,保存集群所有状态数据 |
八、扩展概念
| 名词 | 作用 |
|---|---|
| Custom Resource Definition (CRD) | 扩展K8s API,定义自定义资源类型 |
| Sidecar | 与主容器共享Pod的辅助容器(如日志收集/服务网格代理) |
| Init Container | 在主容器启动前运行的初始化容器(如配置预加载) |
| PodDisruptionBudget (PDB) | 保障应用在维护期间的最小可用副本数 |
总结
• 核心对象:Pod、Deployment、Service、Ingress、PV/PVC
• 关键概念:Label/Selector、HPA、RBAC、NetworkPolicy
• 运维工具:Helm、Prometheus、Metrics Server
• 架构组件:kube-apiserver、etcd、kubelet
这些名词构成了Kubernetes的核心体系,理解它们的关系能帮助高效管理容器化应用。实际使用中建议结合kubectl explain <资源类型> 命令查看详细字段定义。