k8s(2014)
关键词:集群管理、调度、自愈
一、Kubernetes 是什么?
为什么会有 Kubernetes?
在没有 K8s 前:
- 我们手动部署程序到服务器
- 容器越来越多(Docker)
- 需要解决:
- 自动部署
- 自动扩缩容
- 自动重启
- 服务发现
- 负载均衡
- 配置管理
Docker 解决:一台机器如何跑服务。
但问题来了:
- 如果我有 100 台机器?
- 如果一个容器挂了?
- 如果流量突然暴涨?
这时 Google 把内部系统 Borg 开源 → Kubernetes。
K8S 是:容器集群操作系统。Kubernetes = 容器编排系统。Kubernetes 是一个用于自动化部署、扩展和管理容器化应用的平台。
如果说:
- Docker = 管理一个容器
- K8S = 管理成千上万个容器
原理:
arduino
yaml配置 → API Server → Scheduler分配 → Node运行 → Controller监控TODO List
- [ ] kubectl get pods
- [ ] Deployment
- [ ] Service
- [ ] Ingress
二、Kubernetes 的核心思想
K8S 特性
2.1 声明式管理
你只需要告诉 K8s:
yaml
我要 3 个 nginx PodK8s 会自动保证:
- 永远有 3 个
- 挂了会补
- 版本升级可回滚
2.2 控制器模式(Controller)
控制器不断对比:
期望状态(Desired State) vs 当前状态(Current State)
不一致就自动修复。
三、Kubernetes 架构
K8S 集群初始化的步骤:
软件源安装 ==> 安装软件 ==> 镜像获取 ==> 主节点初始 ==> 工作节点加入集群。
3.1 Master 节点(控制平面)
- API Server:入口
- Scheduler:调度 Pod
- Controller Manager:各种控制器
- etcd:存储集群数据
3.2 Node 节点(工作节点)
- kubelet:管理 Pod
- kube-proxy:网络
- Container Runtime:docker/containerd
四、K8S 核心概念
- Pod:最小部署单元
- Controller:Pod 的管理器
- Service:Pod 的访问入口
- Volume:数据卷
- Namespace:隔离
4.1 Pod
最小运行单元,包含一个或多个容器。
特点:
- 共享 IP
- 共享存储
- 生命周期短暂
4.2 Deployment
管理无状态应用:
- 副本数
- 滚动升级
- 回滚
Deployment → ReplicaSet → Pod
4.3 StatefulSet
管理有状态应用:
- 固定名称
- 固定存储
- 顺序启动
适合:
- MySQL
- Redis
- Kafka
4.4 Service
为 Pod 提供稳定访问地址。
类型:
- ClusterIP
- NodePort
- LoadBalancer
4.5 Ingress
HTTP 网关:
- 域名转发
- 路径路由
- HTTPS
4.6 ConfigMap
存配置文件。
4.7 Secret
存密码、证书。
4.8 PV / PVC
存储抽象:
Pod → PVC → PV → 磁盘
4.9 Namespace
资源隔离。
六、配置与密钥管理
ConfigMap 注入方式:
- 环境变量
- 挂载文件
Secret:
- Base64 存储
- 可挂载
七、日志与监控
日志:
bash
kubectl logs pod-name监控:
- Prometheus
- Grafana
八、部署流程(实战案例)
8.1 部署 nginx
yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deploy
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80bash
kubectl apply -f nginx.yaml九、升级与回滚
bash
kubectl rollout status deployment nginx
kubectl rollout undo deployment nginx十、安全机制(基础)
- RBAC 权限控制
- Namespace 隔离
- Secret 管理
- NetworkPolicy
十一、学习路线图
第一阶段:基础
- Pod
- Deployment
- Service
- Namespace
- kubectl
第二阶段:进阶
- Ingress
- ConfigMap
- Secret
- PV/PVC
第三阶段:高级
- 调度策略
- 网络插件
- Helm
- Operator
十二、心智模型总结
K8s 就是一个:
自动帮你管理容器的操作系统
你只管:
- 写 YAML
- 描述目标状态
它负责:
- 调度
- 重启
- 网络
- 存储
- 扩缩容
十三、总结
Kubernetes 解决的是:
- 应用部署
- 应用治理
- 应用生命周期管理
掌握 Kubernetes 的关键是:
理解对象关系 + 控制器思想 + 声明式管理
附:对象关系图
对象关系图
- Ingress → Service → Pod
- Pod → ConfigMap / Secret
- Pod → PVC → PV
- Deployment → ReplicaSet → Pod
- Pod → Node
- Pod → Namespace
K8S 原理图








K8S 核心组件
一句话总结每个组件
| 组件 | 一句话解释 |
|---|---|
| Pod | 应用运行单元 |
| Node | 运行 Pod 的机器 |
| Namespace | 资源隔离空间 |
| Deployment | 无状态应用控制器 |
| ReplicaSet | 副本数量管理 |
| StatefulSet | 有状态应用控制器 |
| Service | 稳定访问入口 |
| Ingress | HTTP 网关 |
| ConfigMap | 配置中心 |
| Secret | 密码保险箱 |
| PV | 存储资源 |
| PVC | 存储申请 |



