专栏系列Docker程序员零基础吃透K8s生产实战各位只懂Docker、零基础想学K8s的小伙伴大家好日常开发中我们大多习惯了docker build、docker run单机部署服务简单高效、上手门槛低。但只要跳槽大厂、接触生产集群K8s是绕不开的必备技能。很多新手学K8s翻车的核心原因一上来背概念、啃源码、学理论不学实操、不避生产坑。本专栏专为会Docker、零基础K8s的后端程序员打造全程摒弃冗余理论只讲工作、面试、生产能用到的实操内容从集群搭建到多服务部署、中间件落地、生产排障一站式搞定K8s。本篇作为系列开篇重点解决为什么要学K8s、Docker和K8s的核心区别、零基础搭建稳定可用的K8s集群、全套基础命令、新手所有安装坑点看完直接拥有可长期实操的K8s环境一、前言为什么你会Docker还必须学K8s我们先直面一个问题单机Docker到底有什么致命短板导致企业生产全部改用K8s日常Docker单机部署的痛点也是中小企业上K8s的核心原因无自愈能力Docker容器挂了必须手动重启业务直接中断无人值守极易出事故无弹性扩容流量暴涨只能手动加机器、启容器无法自动扩缩容扛不住线上峰值无滚动更新/回滚更新服务必须停服部署无法实现零停机发布上线风险极高无统一流量管理多服务端口混乱、无统一外网入口无法做负载均衡、域名代理无配置隔离与热更新所有配置硬编码在镜像内改配置必须重新打包镜像、重启容器单点故障严重单机器部署所有服务机器宕机所有业务全部瘫痪总结一句话Docker适合本地开发、单机测试K8s是Docker的集群升级版专门解决生产环境高可用、高并发、可运维的核心痛点。二、Docker与K8s一对一对照新手必记秒懂K8s核心针对只会Docker的开发者我整理了全网最易懂的对标关系不用死背概念完全基于你已掌握的Docker知识迁移Docker 单机概念K8s 集群对应概念核心作用说明Docker 容器PodK8s最小运行单元一个Pod包含一个或多个容器Docker 镜像Image完全通用K8s直接复用Docker镜像无需重新打包docker run 启动容器Deployment管控服务副本、自愈、滚动更新、扩缩容docker 端口映射Service提供固定端口、内网负载均衡Pod重启不改变访问地址宿主机IP访问Ingress提供统一外网域名入口替代杂乱的端口访问本地配置文件/环境变量ConfigMap/Secret统一管理配置支持热更新、加密存储密钥手动启停容器K8s控制器自动运维故障自愈、自动重启核心认知你之前学的Docker全部有用K8s只是帮你批量、智能、高可用的管理无数个Docker容器。三、K8s核心组件极简解读只讲实操用到的摒弃晦涩理论只保留新手必须懂、工作必用到的组件作用1. Master节点控制节点集群的「大脑」负责统一调度、管理所有服务不运行业务容器只做管控。2. Node节点工作节点集群的「干活机器」所有Pod、业务服务、中间件全部运行在Node节点上。3. 核心资源组件Namespace环境隔离区分开发、测试、生产环境资源互不干扰Pod最小运行单元真正运行业务容器的载体Deployment无状态服务管理所有业务服务Jar/Python/Go全部用它部署Service内网流量负载均衡固定访问入口Ingress外网统一访问入口域名转发、反向代理四、生产级K8s环境搭建K3s轻量版·新手首选1. 环境选择说明市面上主流K8s搭建方案Kubeadm、Minikube、K3s针对个人学习、本地实操首选K3s轻量、占用资源低、一键安装、极少报错、兼容所有K8s原生特性完全满足学习、实操、项目部署需求。2. 前置环境准备必做否则100%报错服务器/虚拟机配置建议2核4G及以上最低1核2G容易卡顿系统CentOS7/Ubuntu18.04执行前置初始化命令关闭所有冲突配置# 关闭防火墙 systemctl stop firewalld systemctl disable firewalld # 关闭SELinux setenforce 0 sed -i s/^SELINUXenforcing/SELINUXdisabled/g /etc/selinux/config # 关闭SwapK8s强制要求 swapoff -a sed -i / swap / s/^\(.*\)$/#\1/g /etc/fstab # 时间同步避免集群时间错乱报错 yum install -y chrony systemctl start chronyd systemctl enable chronyd3. 一键安装K3s集群国内加速版使用国内镜像源解决镜像拉取超时、安装失败问题执行一键安装脚本curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRRORcn sh -4. 验证集群安装成功# 查看集群节点状态 kubectl get nodes # 查看集群核心组件状态 kubectl get pods -n kube-system正常结果节点状态为Ready所有kube-system下的Pod全部Running无Error、Crash状态。5. 配置kubectl命令补全可选提升实操效率yum install -y bash-completion source /usr/share/bash-completion/bash_completion echo source (kubectl completion bash) ~/.bashrc source ~/.bashrc五、K8s核心命令对标Docker新手速查表完全贴合Docker使用习惯日常实操高频命令一一对应告别陌生命令# 1. 查看容器/资源 docker ps kubectl get pods docker ps -a kubectl get pods -A # 2. 查看日志 docker logs 容器名 kubectl logs pod名 docker logs -f 容器名 kubectl logs -f pod名 # 3. 进入容器终端 docker exec -it 容器名 /bin/bash kubectl exec -it pod名 -- /bin/bash # 4. 删除资源 docker rm 容器名 kubectl delete pod pod名 docker rmi 镜像名 kubectl delete image 镜像名 # 5. 启动/重启服务 docker restart 容器 kubectl rollout restart deployment 服务名 # 6. 查看详细信息 docker inspect 容器 kubectl describe pod pod名六、集群安装后标准校验流程生产级前置检查安装完成后必须执行全套校验避免后续部署服务莫名报错节点状态校验确保所有节点Ready无NotReady状态组件校验kube-system所有Pod正常运行无重启、崩溃网络校验集群内部网络通畅无端口冲突权限校验kubectl无权限报错可正常操作集群资源七、新手安装高频坑点全集百分百解决汇总90%新手安装K8s遇到的问题一次性彻底规避坑点1Swap未关闭导致节点NotReady、Pod启动失败严格执行上文关闭Swap命令坑点2国外源超时必须使用国内镜像安装否则镜像拉取失败、安装超时坑点3防火墙未关闭集群网络不通、节点通信失败坑点4时间不同步证书校验失败、集群组件异常重启坑点5机器资源不足1核1G机器极易出现Pod OOM、节点宕机最低2核4G坑点6cgroup驱动不匹配Docker与K8s cgroup驱动不一致导致容器启动失败K3s自动适配无需手动配置八、集群重置与重装标准流程如果安装失败、环境错乱、资源异常无需重装系统执行标准重置命令# 卸载K3s集群 k3s-uninstall.sh # 清理残留资源 rm -rf /etc/rancher /var/lib/rancher # 重新执行安装脚本即可 curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRRORcn sh -九、本篇总结本篇我们完成了Docker到K8s的认知跃迁、生产级K3s集群搭建、核心命令对标、全量坑点规避、集群校验成功拥有一套稳定、可长期实操的K8s集群环境。彻底解决了新手「装不好K8s、环境总报错、看不懂K8s概念」的核心问题为后续Jar、Python、Go服务部署、中间件落地、生产运维打下坚实基础。下期预告第二篇将讲解K8s核心资源精讲生产YAML编写私有镜像仓库搭建配置热更新健康探针实操彻底告别复制粘贴配置可独立编写生产级YAML文件欢迎订阅专栏持续更新纯实操K8s生产教程零基础也能吃透企业级K8s部署运维