Kubernetes学习指北
Kubernetes学习指北 一、 大纲 1. 了解基础概念 概念 说明 Pod 最小的调度单位,一个 Pod 可以包含一个或多个容器 Node Kubernetes 集群的工作节点 Deployment 管理 Pod 的副本和升级策略 Service 用于 Pod 间通信和对外暴露 ConfigMap / Secret 配置和敏感信息管理 Volume 数据卷,用于持久化数据 Namespace 命名空间,多租户环境的逻辑隔离 Ingress 对外 HTTP/HTTPS 流量管理 kube-apiserver、kube-scheduler、kube-controller-manager Master 组件,负责调度、管理集群 2. 核心组件及职责 (必须的核心组件) kube-apiserver (API 服务器) 作用: 集群的 大脑入口 负责 接收请求(kubectl、Dashboard、其他服务),然后转给 etcd 或控制器 所有组件(scheduler、controller、kubelet)都通过它通信。 像是办事大厅,所有人(开发、运维、调度器)都必须来这里递交申请。 kube-scheduler (调度器) * 作用: 负责 给 Pod 找宿主机。 根据 资源情况(CPU、内存)、约束(亲和性、污点)、策略 来决定 Pod 放在哪个 Node 上。 * 像是一个 派单员,根据司机(Node)的空闲情况,把订单(Pod)分配给合适的人。 kube-controller-manager (控制器管理器) * 作用: 内部包含很多 控制器(controller),比如: Deployment Controller:保证副本数量正确 Node Controller:监控节点状态。 Endpoint Controller:维护 Service → Pod 的映射。 核心任务是:对比实际状态和期望状态,不断修正。 * 像是一个 巡检员,不停检查「理想状态」和「现实情况」是不是一致,如果发现差错,就赶紧修正。 kubelet (节点代理) 作用: 跑在每个 Node 上的 代理。 负责和 kube-apiserver 交互,接收“要运行哪些 Pod”。 调用底层 容器运行时(containerd、CRI-O、Docker) 来真正启动容器。 还会 汇报 Pod 和 Node 的运行状态。 * 像是 工地上的施工队长,接到上级(apiserver)的命令,就去调度工人(containerd)建房子(Pod)。 etcd 作用: 分布式键值存储,保存集群的所有状态(Pod、Service、配置等) * 像是 工地上的施工队长,接到上级(apiserver)的命令,就去调度工人(containerd)建房子(Pod) 容器运行时(Container Runtime,如 containerd、CRI-O、DockerShim) 作用: kubelet 本身不会直接运行容器,它要依赖运行时。 真正负责创建和运行容器的底层引擎。 常见的有 containerd(最主流,K8s 默认推荐) CRI-O(轻量化,专门为 K8s 服务) Docker(以前常用,但现在 K8s 不直接依赖它了,而是通过 containerd) * 比喻:工人,真正搬砖盖房子(运行容器)。 3....