
在云原生、微服务、DevOps 大行其道的今天Kubernetes简称 K8s已经成为后端、运维、架构师必须掌握的核心技能。不管是面试还是实际工作不懂 K8s 都很难跟上现代技术节奏。这篇文章我用通俗易懂、面试可直接背诵、工作能直接用的方式把 K8s 讲透。读完这一篇你就拥有了一套完整的 K8s 知识体系。一、K8s 到底是什么为什么要学1.1 名字由来Kubernetes 来自希腊语意思是舵手、领航员。因为 K 和 s 之间有 8 个字母所以简称为K8s。1.2 它解决了什么问题在没有 K8s 之前我们用 Docker 把应用打包成容器解决了 “环境不一致” 的问题但容器一多成百上千就会出现一堆麻烦容器挂了不会自动重启扩缩容要手动改脚本Pod IP 会变服务没法稳定访问跨机器部署、更新、回滚非常痛苦K8s 就是容器集群的 “操作系统”。你只需要告诉 K8s我要 3 个副本占用 2C4G 资源对外暴露 80 端口剩下的调度、自愈、负载均衡、更新、回滚全部由 K8s 自动完成。一句话总结Docker 让应用能跑K8s 让应用在大规模集群里跑得稳、跑得爽。二、K8s 核心架构Master WorkerK8s 采用经典的主从架构Master控制平面大脑负责决策、调度、管理Worker工作节点苦力真正运行容器、提供资源2.1 Master 组件控制平面kube-apiserver集群唯一入口所有组件都通过它通信负责认证、鉴权、REST 接口etcd分布式高可用键值存储保存集群所有状态和配置唯一数据源kube-scheduler调度器决定把 Pod 放到哪个节点运行kube-controller-manager控制器管理器循环检查期望状态 vs 实际状态不一致就自动修复2.2 Worker 组件工作节点kubelet节点代理跟 Master 通信管理本机 Pod 生命周期kube-proxy网络代理维护 Service 规则实现负载均衡容器运行时真正运行容器Docker、containerd 等CNI 网络插件如 Calico、Flannel让跨节点 Pod 可以互相通信三、K8s 最核心资源对象面试必背K8s 一切皆资源所有操作都通过 YAML 声明。下面是最常用、必须掌握的对象。3.1 Pod最小调度单元K8s不直接管理容器最小单位是Pod一个 Pod 里可以有多个容器共享网络和存储特点短命、IP 不固定、不能直接对外提供服务健康检查livenessProbe存活检查挂了就重启readinessProbe就绪检查没准备好就不转发流量3.2 Deployment无状态应用部署用得最多用来管理无状态服务实现多副本运行滚动更新不停机发布一键回滚手动 / 自动扩缩容适用Nginx、Spring Boot、前端项目、微服务等。3.3 StatefulSet有状态应用与 Deployment 区别稳定的网络标识固定 Pod 名稳定的存储有序启动、删除、更新适用MySQL、Redis、Kafka、ZooKeeper 等。3.4 DaemonSet每个节点跑一个保证集群每台机器都运行一个 Pod。适用日志采集、监控代理、网络插件。3.5 Service稳定的服务入口Pod IP 会变Service 提供固定 IP 固定域名并自动负载均衡。四种类型ClusterIP内部访问默认NodePort节点端口外部可访问测试用LoadBalancer云厂商负载均衡生产ExternalName映射外部服务3.6 Ingress7 层网关Service 是 4 层TCP/UDPIngress 是 7 层HTTP/HTTPS域名路由路径路由HTTPS 证书虚拟主机需要 Ingress Controller如 Nginx Ingress支持。3.7 ConfigMap / SecretConfigMap普通配置文件、环境变量Secret密码、密钥、Token 等敏感信息3.8 PV / PVC持久化存储PV集群级别的存储空间PVCPod 申请使用的存储声明K8s 自动绑定解耦应用与底层存储。3.9 HPA自动扩缩容根据 CPU、内存、QPS 等指标自动增减 Pod 数量。3.10 Namespace资源隔离逻辑分区比如dev、test、prod实现多租户隔离。四、K8s 核心工作原理声明式 APIK8s 最牛的设计就是声明式 API你写 YAML描述期望状态我要 3 个 Podkubectl apply提交给 apiserver存入 etcd控制器无限循环对比期望状态 vs 实际状态不一致就自动调谐你只需要定义目标不用关心怎么做。这就是 K8s 强大的根本原因。五、K8s 核心特性面试高频自愈Pod 挂了自动重启节点挂了自动迁移水平扩缩容一键扩容、自动扩容滚动更新 回滚不停机发布出问题一键回去服务发现与负载均衡Service 固定访问入口配置与代码分离ConfigMap / Secret存储编排自动挂载各种存储批量 / 定时任务Job / CronJob六、最常用 kubectl 命令直接收藏# 查看节点 kubectl get nodes # 查看命名空间 kubectl get ns # 查看 Pod/Deployment kubectl get pods kubectl get deploy # 查看详情 kubectl describe pod pod名 # 查看日志 kubectl logs pod名 -f # 进入容器 kubectl exec -it pod名 -- bash # 应用/删除 YAML kubectl apply -f xxx.yaml kubectl delete -f xxx.yaml # 扩缩容 kubectl scale deploy/xxx --replicas5 # 查看更新历史 回滚 kubectl rollout history deploy/xxx kubectl rollout undo deploy/xxx七、K8s 应用场景微服务架构统一管理云原生应用全生命周期管理CI/CD 流水线自动化部署大数据、AI 分布式任务调度混合云、多云、跨云部署边缘计算K3s八、K8s 生态云原生全景图网络Calico、Flannel、Cilium服务网格Istio监控Prometheus Grafana日志ELK、Loki存储Ceph、MinIOGitOpsArgo CD、Flux CD九、总结可直接当面试结尾Kubernetes 是云原生时代的操作系统以声明式 API为核心通过 Master-Worker 架构实现容器的自动化部署、调度、自愈、扩缩容、滚动更新、负载均衡。它彻底解决了大规模容器集群的管理难题是现代微服务、DevOps、云平台的基石。对于后端开发、运维、测试来说不懂 K8s未来三年一定会被淘汰学好 K8s就是握住了进入大厂、升职加薪的钥匙。