主题
Kubernetes 简介
前置说明
K8s 比较复杂,新手不建议直接上手。 如果你的项目规模不大,用 Docker Compose 就够了。
这篇文档只是简单介绍,让你知道 K8s 是什么、能做什么。
🎯 什么是 Kubernetes?
一句话理解
Kubernetes(简称 K8s)是容器的「调度大管家」。
如果说 Docker 是「打包工具」,K8s 就是「工厂管理系统」,负责调度成百上千个 Docker 容器。
🤔 为什么需要 K8s?
当你的应用规模变大,Docker Compose 就不够用了:
| 场景 | Docker Compose | Kubernetes |
|---|---|---|
| 容器数量 | 几个到十几个 | 成百上千个 |
| 服务器数量 | 1-2 台 | 多台集群 |
| 自动扩缩容 | ❌ 不支持 | ✅ 支持 |
| 滚动更新 | ⚠️ 简单支持 | ✅ 完善支持 |
| 服务发现 | ⚠️ 简单 | ✅ 完善 |
| 自动恢复 | ❌ 需要手动 | ✅ 自动 |
🌟 K8s 核心能力
1. 自动扩缩容
流量突增 → K8s 检测到 CPU 使用率高 → 自动增加容器实例
↓
流量回落 → K8s 检测到资源闲置 → 自动减少容器实例2. 滚动更新(零停机部署)
发布新版本 v2
↓
K8s 启动一个 v2 容器
↓
v2 健康检查通过
↓
停止一个 v1 容器
↓
重复直到全部替换
↓
用户全程无感知!3. 自动恢复
某个容器崩溃了
↓
K8s 检测到
↓
自动重启容器
↓
服务恢复正常4. 负载均衡
用户请求 → K8s Ingress → 自动分配到多个容器实例
├── Pod 1
├── Pod 2
└── Pod 3📦 核心概念速览
| 概念 | 通俗理解 |
|---|---|
| Pod | 容器的最小单位,可以包含一个或多个容器 |
| Deployment | 控制 Pod 的副本数量、更新策略 |
| Service | 给 Pod 提供稳定的访问地址 |
| Ingress | 管理外部访问(类似 Nginx) |
| ConfigMap | 配置文件管理 |
| Secret | 敏感信息管理(密码、密钥) |
☁️ 如何使用 K8s?
推荐:使用托管服务
不要自己搭建 K8s 集群! 非常复杂,维护成本高。
使用云厂商的托管服务,他们帮你管理集群,你只需要部署应用。
国内云厂商
| 服务 | 厂商 | 特点 | 链接 |
|---|---|---|---|
| TKE | 腾讯云 | 国内使用方便 | cloud.tencent.com/product/tke |
| ACK | 阿里云 | 功能全面 | aliyun.com/product/kubernetes |
| CCE | 华为云 | 企业级 | huaweicloud.com/product/cce |
海外云厂商
| 服务 | 厂商 | 特点 | 链接 |
|---|---|---|---|
| EKS | AWS | 全球最大 | aws.amazon.com/eks |
| GKE | Google Cloud | K8s 原厂 | cloud.google.com/kubernetes-engine |
| AKS | Azure | 微软生态 | azure.microsoft.com/services/kubernetes-service |
🎓 什么时候需要 K8s?
| 场景 | 需要 K8s 吗? |
|---|---|
| 个人项目、毕设 | ❌ 不需要,用 Docker Compose |
| 小型创业公司 | ⚠️ 看情况,流量大再考虑 |
| 中大型企业 | ✅ 可以考虑 |
| 微服务架构,几十个服务 | ✅ 推荐 |
| 需要自动扩缩容 | ✅ 推荐 |
| 需要多机房部署 | ✅ 推荐 |
💡 学习建议
如果你想学习 K8s,推荐路径:
1. 先熟练使用 Docker 和 Docker Compose
↓
2. 了解 K8s 基本概念
↓
3. 使用 Minikube 本地练习
↓
4. 在云厂商托管服务上实践本地学习工具
- Minikube:在本地电脑运行迷你 K8s 集群
- Kind:用 Docker 容器运行 K8s
- Docker Desktop:自带 K8s 功能