kubernete 概述。
Kubernetes(k8s)是一个复杂的容器编排系统,包含多个核心概念和资源对象。
以下是按功能分类的 Kubernetes 主要概念列表:
一、基础核心概念
| 概念 | 作用 |
|---|
| Pod | 最小的部署单元,包含一个或多个容器(共享网络/存储命名空间)。 |
| Node | 工作节点(物理机或虚拟机),运行 Pod 的宿主机。 |
| Cluster | 由多个 Node 组成的 Kubernetes 集群。 |
| Namespace | 逻辑上的资源隔离单元(如 dev/prod),用于多租户或环境隔离。 |
二、工作负载(Workloads)
| 概念 | 作用 |
|---|
| Deployment | 管理无状态应用的 Pod 副本,支持滚动更新和回滚。 |
| StatefulSet | 管理有状态应用(如数据库),提供稳定的网络标识和持久化存储。 |
| DaemonSet | 确保每个 Node 上运行一个指定的 Pod(如日志收集器)。 |
| ReplicaSet | 确保指定数量的 Pod 副本运行(通常由 Deployment 自动管理)。 |
| Job | 运行一次性任务,任务完成后 Pod 退出。 |
| CronJob | 定时运行的 Job(类似 Linux Cron)。 |
三、网络与访问
| 概念 | 作用 |
|---|
| Service | 为 Pod 提供稳定的 IP/DNS 和负载均衡,类型包括: |
| - ClusterIP(集群内访问) |
| - NodePort(通过节点端口暴露) |
| - LoadBalancer(云厂商负载均衡器) |
| Ingress | 通过 HTTP/HTTPS 路由规则暴露服务(需配合 Ingress Controller 使用)。 |
| Ingress Controller | 实现 Ingress 规则的组件(如 Nginx、Traefik)。 |
| Endpoint | 记录 Service 后端 Pod 的 IP 和端口列表(自动维护)。 |
| NetworkPolicy | 定义 Pod 之间的网络访问规则(如防火墙)。 |
四、存储管理
| 概念 | 作用 |
|---|
| Volume | Pod 中挂载的存储卷(生命周期与 Pod 绑定)。 |
| PersistentVolume (PV) | 集群级别的持久化存储资源(如云磁盘/NFS)。 |
| PersistentVolumeClaim (PVC) | 用户对 PV 的申请(类似“存储接口”)。 |
| StorageClass | 定义动态分配 PV 的存储类型(如 standard/ssd)。 |
五、配置与安全
| 概念 | 作用 |
|---|
| ConfigMap | 存储非敏感的配置数据(如环境变量、配置文件)。 |
| Secret | 存储敏感数据(如密码、密钥),以 Base64 编码。 |
| ServiceAccount | 为 Pod 分配身份,用于权限控制(与 RBAC 配合)。 |
| RBAC | 基于角色的访问控制(Role/ClusterRole + RoleBinding)。 |
| ResourceQuota | 限制 Namespace 的资源使用量(如 CPU/内存/Pod 数量)。 |
| LimitRange | 限制 Namespace 中单个 Pod/容器的资源范围。 |
六、扩展与运维
| 概念 | 作用 |
|---|
| CustomResourceDefinition (CRD) | 自定义资源类型,扩展 Kubernetes API。 |
| Operator | 基于 CRD 的自动化运维框架(如管理数据库、中间件)。 |
| HorizontalPodAutoscaler (HPA) | 根据 CPU/内存等指标自动扩缩 Pod 数量。 |
| VerticalPodAutoscaler (VPA) | 自动调整 Pod 的资源请求(CPU/内存)。 |
| Helm | Kubernetes 包管理工具,通过 Chart 定义和部署应用。 |
七、监控与调度
| 概念 | 作用 |
|---|
| Kubelet | 运行在 Node 上的代理,负责管理 Pod 生命周期。 |
| kube-scheduler | 调度器,决定 Pod 运行在哪个 Node 上(基于资源、亲和性等)。 |
| kube-proxy | 维护节点上的网络规则(如 Service 的负载均衡)。 |
| Metrics Server | 收集集群资源指标(用于 HPA/Dashboard)。 |
| Prometheus | 第三方监控系统,常用于 Kubernetes 指标采集和告警。 |
| Grafana | 可视化监控数据(通常与 Prometheus 配合)。 |
八、其他重要概念
| 概念 | 作用 |
|---|
| Label | 键值对标签,用于资源分类和选择(如 app=frontend)。 |
| Selector | 通过 Label 筛选资源(如 Service 选择 Pod)。 |
| Annotation | 非标识性元数据(如构建信息、配置说明)。 |
| Taint/Toleration | 控制 Pod 能否调度到特定 Node(如专用节点)。 |
| Affinity/Anti-Affinity | 定义 Pod 的调度偏好(如“尽量运行在同一可用区”)。 |