k8s
K8s 入门基础理论
K8s(Kubernetes)的核心是「容器编排平台」—— 简单说,就是帮你自动化管理大量容器(比如 Docker 容器)的 “管家系统”,不用手动启停、扩容、排错,适合部署微服务、网站、后台应用等。
K8s 核心定位:为什么需要它?
没有 K8s 时,你可能要手动做这些事:
- 容器挂了,得自己重启;
- 访问量变大,得手动加容器;
- 容器 IP 变了,得手动改访问地址;
- 多环境(开发 / 测试 / 生产)的容器容易混乱。
K8s 核心目标:解决 4 大痛点
- 自动化部署:一键启动成百上千个容器,不用逐个操作;
- 自愈能力:容器挂了、节点崩了,自动重建容器,不用人工干预;
- 弹性扩缩容:根据访问量自动加 / 减容器数量(比如双 11 扩容,平时缩容);
- 服务发现与负载均衡:给容器分配固定访问地址,自动分发请求到多个容器,避免单点故障。
必记核心概念
| 概念 | 通俗类比 | 规范定义 | 核心作用(为什么需要它) |
|---|---|---|---|
| 集群(Cluster) | 整个小区 | 由 1 个或多个 Node 组成的集合,是 K8s 的 “运行环境”。 | 容纳所有应用和资源,是 K8s 的 “大容器”。 |
| 节点(Node) | 小区里的一栋楼 | 集群中的物理机或虚拟机,是运行容器的 “硬件载体”。 | 提供 CPU、内存等硬件资源,Pod 必须运行在 Node 上。 |
| 命名空间(Namespace) | 楼里的单元楼(1 单元、2 单元) | 集群内的资源隔离抽象,相当于 “资源文件夹”。 | 1. 隔离多环境(开发 / 测试 / 生产),避免资源冲突;2. 控制资源配额(比如给开发环境分配 2 核 4G 内存)。 |
| Pod | 单元楼里的一套房子 | K8s 最小部署单元,包含 1 个或多个关联容器,共享网络和存储。 | K8s 不直接管理容器,通过 Pod 封装容器 —— 相当于给容器加了 “管理外壳”,方便 K8s 调度和监控。 |
| 控制器(以 Deployment 为例) | 房子的管家 | 管理 Pod 生命周期的 “自动化程序”,常见类型:Deployment(无状态应用)、StatefulSet(有状态应用)。 | 1. 自愈:Pod 挂了自动重建;2. 扩缩容:一键增减 Pod 数量;3. 版本更新:滚动更新 Pod(不中断服务)。 |
| 服务(Service) | 房子的固定门牌号 | 为 Pod 提供固定网络访问入口的抽象,关联多个 Pod,实现负载均衡。 | 解决 Pod IP 动态变化的问题 —— 不管 Pod 怎么重建,外部都能通过 Service 的固定地址访问。 |
| 配置中心(ConfigMap/Secret) | 房子里的 “公共配置”(比如 WiFi 密码) | ConfigMap:存储非敏感配置(如数据库地址、端口);Secret:加密存储敏感信息(如密码、Token)。 | 1. 配置与应用分离,不用改代码就能改配置;2. 敏感信息加密,避免明文泄露。 |
| 存储卷(Volume) | 房子里的 “储物间” | 为 Pod 提供持久化存储的抽象(容器删除后数据会丢,Volume 数据不会丢)。 | 解决容器 “数据临时存储” 的问题 —— 比如数据库 Pod 的数据、应用日志,需要持久化到 Volume。 |
| 核心组件(API Server) | 小区物业中心 | K8s 的 “统一入口”,所有操作(创建 Pod、扩容)都通过它执行,相当于 “大脑”。 | 接收并处理用户命令,协调其他组件工作,是 K8s 的核心枢纽。 |