getfromcode

Kubernetes(K8s)完全入门指南

测试运维
文章摘要

这门课解决什么问题 K8s本质是容器编排与自动运维系统,但概念繁多、机制抽象。这门课聚焦核心运转逻辑,把复杂集群调度拆解为可理解的工程模块。它不空谈理论,而是直接回答:怎么保证应用不挂、怎么做到更新不中断、怎么根据流量动态增减资源。通过奶茶店比喻等具象化拆解,帮你建立从Pod到HPA的完整心智模型,把K8s从黑盒变成可配置、可落地的工程工具。 适合什么基础…

已有 131 人浏览 发布 2026-02-12 更新 2026-09-22

这门课解决什么问题

K8s本质是容器编排与自动运维系统,但概念繁多、机制抽象。这门课聚焦核心运转逻辑,把复杂集群调度拆解为可理解的工程模块。它不空谈理论,而是直接回答:怎么保证应用不挂、怎么做到更新不中断、怎么根据流量动态增减资源。通过奶茶店比喻等具象化拆解,帮你建立从Pod到HPA的完整心智模型,把K8s从黑盒变成可配置、可落地的工程工具。

适合什么基础

建议具备基础容器概念(如Docker镜像与容器运行原理),以及轻量级命令行操作经验。不需要深入Linux内核知识或复杂网络底层原理,但需能接受抽象概念(如声明式API、控制器模式)。如果你正从单机部署向集群化部署过渡,这门课能直接作为工程落地的起点。

建议先看哪几块

第一块是K8s本质定义与核心价值,理解它作为“容器管家+自动运维机器人”的定位。第二块是核心组件的工程映射,重点拆解Pod、Deployment、Service、Ingress、ConfigMap/Secret、PVC、HPA这七个关键模块,建立它们之间的调用与依赖关系。第三块是项目结构的设计思路,学习如何用声明式配置管理应用生命周期。

学完能独立做什么

能搭建本地K8s集群,部署有状态应用,配置扩缩容与存储方案。理解高可用部署的底层逻辑,能排查常见故障。独立完成从单机容器到集群编排的工程迁移,为后续云原生架构设计打下基础。

资料怎么配合练习

建议边看边用CLI实操,对照奶茶店比喻理解每个组件。先跑通单机部署,再逐步引入集群与有状态应用。配置文件建议直接写入本地集群,修改后观察Pod状态变化,加深对声明式API的理解。

🎯第一部分:K8s到底是什么?

一句话定义

K8s = 容器管家 + 自动运维机器人

三个核心价值

  1. 不会挂:Pod死了自动重启,节点宕机自动迁移
  2. 不中断:更新版本时一个接一个替换,用户无感知
  3. 3 不浪费:流量高了自动加机器,流量低了自动减机器

🏢第二部分:用奶茶店比喻K8s全家桶

K8s概念奶茶店比喻你的项目里对应
Node(节点)奶茶店的分店服务器
Pod(豆荚)一个员工容器
Deployment(部署)店长管前端/后端员工的管理员
Service(服务)前台接单员把请求分发给Pod
Ingress(入口)门店招牌公网入口)
ConfigMap(配置)员工手册nginx-frontend-config
Secret(密钥)保险柜密码(镜像仓库密码)
PVC(存储)仓库货架(数据库硬盘)
HPA(自动扩缩)智能排班系统自动加人/减人


Pod相关 - 最小工作单元

# 查看Pod(最常用)
kubectl get pods -n waterproof
# NAME READY STATUS
# waterproof-frontend-8687f9d787-9snsw 1/1 Running # 查看Pod详情(排错用)
kubectl describe pod -n waterproof waterproof-frontend-xxx # 查看Pod日志
kubectl logs -n waterproof -l app=waterproof-frontend # 进入Pod内部(调试用)
kubectl exec -it -n waterproof waterproof-frontend-xxx -- sh # 删除Pod(会自动重建)
kubectl delete pod -n waterproof waterproof-frontend-xxx

2. 🎯 Deployment相关 - 你的应用管家

# 查看Deployment
kubectl get deployment -n waterproof
# NAME READY UP-TO-DATE AVAILABLE
# waterproof-frontend 1/1 1 1 # 更新镜像(你刚做的)
kubectl set image deployment/waterproof-frontend -n waterproof \ web=sjk2026-registry.cn-hangzhou.cr.aliyuncs.com/sjk2026_public/waterproof-frontend:0.1.4 # 查看更新状态(最重要!)
kubectl rollout status deployment/waterproof-frontend -n waterproof # 扩容(人多了加员工)
kubectl scale deployment/waterproof-frontend -n waterproof --replicas=3 # 缩容(人少了减员工)
kubectl scale deployment/waterproof-frontend -n waterproof --replicas=1 # 回滚(新版本有问题)
kubectl rollout undo deployment/waterproof-frontend -n waterproof # 查看历史版本
kubectl rollout history deployment/waterproof-frontend -n waterproof

3. 🌐 Service相关 - 稳定的访问入口

# 查看Service
kubectl get svc -n waterproof
# NAME TYPE CLUSTER-IP EXTERNAL-IP
# waterproof-frontend-lb LoadBalancer 1.1.1.1 2.2.2.2
# waterproof-backend ClusterIP 112.118.1.124 <none> # 查看Service详情
kubectl describe svc -n waterproof waterproof-frontend-lb # 测试Service连通性(从Pod内)
kubectl exec -it -n waterproof backend-pod -- curl http://postgres:5432

4. 📝 ConfigMap/Secret相关 - 配置管理

# 查看配置
kubectl get configmap -n waterproof
kubectl get secret -n waterproof # 创建ConfigMap(从文件)
kubectl create configmap nginx-config -n waterproof --from-file=default.conf # 查看配置内容
kubectl get configmap nginx-frontend-config -n waterproof -o yaml # 修改配置(热更新)
kubectl edit configmap nginx-frontend-config -n waterproof
# 改完要重启Pod
kubectl rollout restart deployment/waterproof-frontend -n waterproof

5. 📊 监控调试相关

# 查看资源使用情况
kubectl top pods -n waterproof
kubectl top nodes # 查看所有资源(命名空间内)
kubectl get all -n waterproof # 实时监控Pod状态
kubectl get pods -n waterproof -w # 查看集群节点
kubectl get nodes -o wide # 查看API地址(确认连的是哪个集群)
kubectl cluster-info

🔥第四部分:K8s最核心的3个机制(必懂)

1. 声明式API(Declarative)

# ❌ 命令式(你要告诉它怎么做)
ssh server
docker pull image
docker stop old
docker run new # ✅ 声明式(你只告诉它要什么)
kubectl apply -f deployment.yaml
# K8s自己决定怎么达到这个状态

2. 控制器循环(Control Loop)

你写:我要3个Pod ↓
K8s检查:现在只有1个 ↓
K8s执行:创建2个新Pod ↓
K8s检查:现在有3个 ✅ ↓
(循环)永远确保是3个

3. 标签选择器(Label Selector)

# Pod上有标签
labels: app: waterproof-frontend env: production # Service通过标签找Pod
selector: app: waterproof-frontend # 只找有这个标签的Pod

📋第五部分:K8s对象速查表

对象	缩写	作用	你的项目里
Pod	po	跑容器的最小单元	前端Pod、后端Pod
Deployment	deploy	管理Pod版本、数量	waterproof-frontend
Service	svc	稳定的网络入口	waterproof-frontend-lb
ConfigMap	cm	配置文件	nginx-frontend-config
Secret	secret	密钥	acr-secret
Ingress	ing	公网访问入口	-
PersistentVolumeClaim	pvc	持久化存储	postgres-pvc
Namespace	ns	隔离环境	waterproof
HorizontalPodAutoscaler	hpa	自动扩缩容	还没配
Job	job	一次性任务	数据库迁移

第一阶段:能跑起来(你现在)

├── kubectl get pods

├── kubectl logs

├── kubectl exec

├── kubectl set image

└── kubectl rollout status


第二阶段:能配起来(下一步)

├── 自己写 Deployment YAML

├── 自己写 Service YAML

├── 配 ConfigMap/Secret

└── 配 Ingress


第三阶段:能调优(进阶)

├── HPA 自动扩缩容

├── PodDisruptionBudget

├── 网络策略

└── 监控告警


第四阶段:能排障(高手)

├── 分析 Pod 启动失败

├── 网络问题排查

├── 性能问题定位

└── 集群级问题诊断

课程购买
课程价格
金币29
290金币限时优惠会员免费
销量:0
💎 开通会员每日免费下载,比单买更划算 →
支付成功后会自动显示下载资源云盘的链接!点击链接即可下载到本地。