Kubernetes 是什么
学习目标
- 理解 Kubernetes 解决什么问题
- 理解 Kubernetes 的核心概念
- 了解 Kubernetes 的应用场景
核心概念
一句话解释
Kubernetes 是一个容器编排平台,用于自动部署、扩展和管理容器化应用。
解决什么问题
单机 Docker:
┌─────────────────┐
│ Docker │
│ 容器 1 │
│ 容器 2 │
│ 容器 3 │
└─────────────────┘
问题:容器太多怎么管理?挂了怎么恢复?
Kubernetes 解决方案:
┌─────────────────────────────────────┐
│ Kubernetes 集群 │
│ ┌─────────┐ ┌─────────┐ │
│ │ Node 1 │ │ Node 2 │ ... │
│ │ 容器 1 │ │ 容器 4 │ │
│ │ 容器 2 │ │ 容器 5 │ │
│ │ 容器 3 │ │ 容器 6 │ │
│ └─────────┘ └─────────┘ │
└─────────────────────────────────────┘
自动调度、自动恢复、自动扩缩容
核心概念
| 概念 | 说明 | 类比 |
|---|---|---|
| Pod | 最小部署单元 | 一个或多个容器的组 |
| Deployment | 声明式部署 | 描述期望状态 |
| Service | 服务发现和负载均衡 | 稳定的访问入口 |
| Namespace | 资源隔离 | 虚拟集群 |
Kubernetes vs Docker
| 方面 | Docker | Kubernetes |
|---|---|---|
| 范围 | 单机容器管理 | 集群容器编排 |
| 扩展 | 手动 | 自动 |
| 恢复 | 手动 | 自动 |
| 负载均衡 | 无 | 内置 |
| 服务发现 | 无 | 内置 |
应用场景
1. 微服务架构
- 每个服务独立部署、扩展、更新
2. CI/CD
- 自动化部署流水线
3. 弹性伸缩
- 根据负载自动扩缩容
4. 多环境管理
- 开发、测试、生产环境隔离
实践练习
练习 1:理解概念
回答以下问题:
- Kubernetes 解决了 Docker 的哪些局限性?
- Pod 和容器的关系是什么?
- Deployment 的作用是什么?
练习 2:画图
画出 Kubernetes 的核心架构:Master Node → Worker Node → Pod → Container
常见误解
1. Kubernetes 不是 Docker 的替代品
Docker:打包和运行容器
Kubernetes:编排和管理容器
两者配合使用,不是替代关系
2. Kubernetes 不是必须的
小规模应用:Docker Compose 足够
大规模应用:需要 Kubernetes
不要过度工程化
小结
| 要点 | 说明 |
|---|---|
| Kubernetes | 容器编排平台 |
| Pod | 最小部署单元 |
| Deployment | 声明式部署 |
| Service | 服务发现和负载均衡 |
| 核心价值 | 自动化、可扩展、高可用 |
练习编辑器
bash
Loading...