【K8s 第一篇】Docker程序员零基础入门K8s:集群搭建+Docker对标+环境避坑(保姆级实操)
🌈 专栏系列: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 容器 | Pod | K8s最小运行单元,一个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/^SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config # 关闭Swap(K8s强制要求) 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_MIRROR=cn 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遇到的问题,一次性彻底规避:
坑点1:Swap未关闭:导致节点NotReady、Pod启动失败,严格执行上文关闭Swap命令
坑点2:国外源超时:必须使用国内镜像安装,否则镜像拉取失败、安装超时
坑点3:防火墙未关闭:集群网络不通、节点通信失败
坑点4:时间不同步:证书校验失败、集群组件异常重启
坑点5:机器资源不足:1核1G机器极易出现Pod OOM、节点宕机,最低2核4G
坑点6:cgroup驱动不匹配: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_MIRROR=cn sh -九、本篇总结
本篇我们完成了Docker到K8s的认知跃迁、生产级K3s集群搭建、核心命令对标、全量坑点规避、集群校验,成功拥有一套稳定、可长期实操的K8s集群环境。
彻底解决了新手「装不好K8s、环境总报错、看不懂K8s概念」的核心问题,为后续Jar、Python、Go服务部署、中间件落地、生产运维打下坚实基础。
下期预告
第二篇将讲解:K8s核心资源精讲+生产YAML编写+私有镜像仓库搭建+配置热更新+健康探针实操,彻底告别复制粘贴配置,可独立编写生产级YAML文件!
欢迎订阅专栏,持续更新纯实操K8s生产教程,零基础也能吃透企业级K8s部署运维!
