跳到主要内容

认识 Kubernetes 与学习路线

Kubernetes(常写作 K8s)是一个管理容器化应用的平台。你告诉它“应用应运行几份、如何被访问、资源上限是多少”,它持续把集群调整到这个目标状态。

本系列不把 Kubernetes 当成一组 kubectl 命令,而是围绕一个完整链路学习:部署应用 -> 让应用可访问 -> 保存数据 -> 观察和排障 -> 安全维护集群。

Kubernetes 解决什么问题​

Docker 能运行一个容器,但生产环境还需要处理副本故障、滚动发布、服务发现、跨节点调度、资源隔离和权限控制。Kubernetes 把这些能力统一为可声明、可查询、可自动恢复的资源。

需求Kubernetes 的做法
一个容器异常退出控制器创建新的 Pod,使副本数回到目标值
应用需要多副本Deployment 维护指定数量的副本
服务 IP 会变化Service 提供稳定访问入口和 DNS 名称
应用需要配置或密码ConfigMap / Secret 与镜像分离管理
节点要维护cordon / drain 安全迁移可驱逐的工作负载

与相邻工具的边界​

工具主要职责Kubernetes 文档不重复讲什么
Docker镜像、单容器、构建与运行时Dockerfile、镜像构建和 Engine 故障排查
Terraform云网络、节点、托管集群等基础设施生命周期VPC、云账号、集群创建的 IaC 实现
Helm打包和参数化 Kubernetes 清单先理解原生资源,再使用 Chart
Argo CDGitOps 同步和交付流程应用如何写清单、如何被 Kubernetes 运行
Prometheus / Grafana指标采集、告警与可视化仅说明 Kubernetes 暴露哪些运维信号

典型链路是:Terraform 创建基础设施和集群 -> Helm / Argo CD 交付清单 -> Kubernetes 运行工作负载 -> Prometheus 监控运行状态。

先建立四个概念​

  1. 集群:由控制面和若干 Node 组成,控制面决定资源应如何调度和恢复。
  2. Pod:最小调度单元,通常包含一个主容器;Pod 本身会被替换,不应依赖其临时 IP。
  3. 控制器:例如 Deployment、StatefulSet、DaemonSet,负责持续维持 Pod 的期望状态。
  4. 声明式配置:YAML 描述期望状态,控制器把真实状态逐步收敛到该状态。
先学对象,再背命令

不知道一个对象的生命周期和责任边界时,不要急着复制 YAML。先回答“它要长期运行还是一次性运行”“需不需要稳定身份”“谁负责发现它”,再选择资源类型。

文档路线​

阶段你将学习
入门准备本地集群、看懂 Node / Namespace / Pod 与资源关系
工作负载Deployment、StatefulSet、DaemonSet、Job、自动扩缩容分别解决什么问题
平台能力网络访问、配置与数据、调度与权限
生产运维巡检、发布、排障、节点维护与集群升级

建议按编号阅读。已有线上集群经验的读者也建议从第 3 篇开始,统一资源模型和排障术语。

环境前提​

  • 有一个可操作的 Kubernetes 集群:本地 kind / minikube、公司测试集群或托管集群均可。
  • 已安装 kubectl,且当前身份只能操作测试 Namespace。
  • 所有示例的镜像、域名、账号和 IP 都是占位符,不应直接用于生产。

下一篇:准备练习环境。