☸️Kubernetes 入门
约 1353 字大约 5 分钟
KubernetesK8SDevOpsContainer
2026-05-25
理解 Kubernetes 的关键,不在于记住多少命令,而在于搞清楚 Pod、Service、Deployment、Namespace 这几个核心对象分别负责什么、它们之间怎么协作。
官方文档、教程与 Release 日志
互动式学习入口,适合零基础入门
它是什么
Kubernetes 脱胎于 Google 内部的 Borg 系统,2015 年由 CNCF 接管后逐渐成为容器编排领域的事实标准。
更准确地说,它是一个容器编排引擎:负责在集群中调度容器、管理容器的生命周期、实现服务发现和负载均衡、支撑弹性伸缩和滚动更新。
它解决什么问题
手动管理几十个容器是可行的,超过一定规模后就必须交给编排系统。Kubernetes 解决的是这四类问题:
- 调度:容器该放在哪个节点上运行
- 管理:容器挂了怎么自动恢复,资源怎么分配
- 网络:容器之间、容器与外部怎么通信
- 伸缩:流量高峰怎么扩容,闲时怎么缩容
几个核心概念
上手 K8S 之前,先把四个对象搞清楚:
Pod
Pod 是 K8S 的最小调度单元,一个 Pod 里可以包含一个或多个容器,共享同一个网络命名空间和存储卷。
第一次上手时,先把 Pod 理解成"一个(或一组)紧耦合的容器"就够了。
Deployment
Deployment 负责管理 Pod 的期望状态。比如你声明"我要跑 3 个 NGINX 容器",Deployment 就会持续确保这 3 个容器一直在跑,挂了会自动重建。
Service
Service 为一组 Pod 提供稳定的访问入口。Pod 的 IP 是会变的,但 Service 的 IP(或者域名)是稳定的,天然做负载均衡。
Namespace
Namespace 用来做资源隔离和逻辑分组,适合多团队共用一个集群时区分不同项目或环境。
最小上手路径
第一次跑通 K8S,建议先从本地单节点集群开始,不要一开始就折腾多节点集群。
- 先装一个本地 K8S 发行版(Minikube 或 Kind)
- 用 kubectl 创建一个 NGINX Deployment,验证 Pod 调度是否正常
- 暴露一个 Service,用 NodePort 或 port-forward 验证访问
- 用 kubectl scale 调整副本数,体验弹性伸缩
- 用 kubectl rollout undo 回滚一次,体验版本管理
只要跑通以上几步,就建立了对 K8S 最核心工作流的感性认知。
本地环境选型
支持 VirtualBox / HyperKit / Docker 驱动的本地单节点 K8S
用 Docker 容器当节点,启动快,适合 CI 场景
轻量级 K8S,二进制文件,无需 Docker,适合资源受限环境
Minikube 最接近真实的 K8S 环境,功能完整;Kind 启动最快,适合快速验证;K3s 适合树莓派、低配机器或 CI/CD 流水线场景。
几个常用命令
# 查看集群信息
kubectl cluster-info
# 查看所有节点
kubectl get nodes
# 查看当前 namespace 下的 Pod
kubectl get pods
# 查看所有命名空间的 Pod
kubectl get pods -A
# 部署一个 NGINX
kubectl create deployment nginx --image=nginx
# 扩缩容
kubectl scale deployment nginx --replicas=3
# 删除 deployment
kubectl delete deployment nginx
# 查看 pod 详细日志
kubectl logs <pod-name>
# 进入容器调试
kubectl exec -it <pod-name> -- /bin/sh
# 端口转发(本地访问集群内服务)
kubectl port-forward svc/nginx 8080:80
# 应用 YAML 配置
kubectl apply -f deployment.yaml
# 查看资源使用情况
kubectl top nodes
kubectl top pods适合什么人先学
- 有 Docker 基础,想进阶到容器编排的同学
- 在云原生方向深入的后端工程师
- 需要管理容器化应用的运维或 DevOps 同学
- 想系统理解 K8S 在集群管理中扮演什么角色的人
不适合期待什么
K8S 不是银弹:
- 它不能替代监控和日志系统
- 它不能替代配置管理和密钥管理(可用 Vault + External Secrets Operator 补)
- 单机场景下,用 Docker Compose 或 Nomad 可能更轻量
学习链接
零基础可跑通的官方学习路径
ClusterIP、NodePort、LoadBalancer、Ingress 的区别与适用场景
用 Kind 快速搭建本地 K8S 环境
Google 内部容器管理系统的演进历史,帮助理解 K8S 设计动机
