资讯动态

K8s 网络与存储(容器网络互通与数据持久化)

发布时间:2026/8/12 16:39:48 来源:尧图企业网站定制
文章目录前言一、K8s 标准网络模型全网统一核心准则1.1 K8s 网络三大铁律1.2 K8s 四层网络通信架构通俗分层二、Pod 互通原理同节点 跨节点 白话拆解2.1 同节点 Pod 互通最简单2.2 跨节点 Pod 互通核心重点三、ClusterIP / NodePort 彻底区分新手100%混淆点3.1 ClusterIP默认类型3.2 NodePort测试/外网访问类型3.3 两者核心区别对照表一目了然四、K8s 数据持久化核心PV / PVC 完整实战4.1 PV、PVC 白话定义永久记住PVPersistentVolume 持久卷PVCPersistentVolumeClaim 持久卷声明4.2 PV-PVC-Pod 绑定关系核心链路4.3 手把手实战PVPVC 数据持久化步骤1创建PV资源pv.yaml步骤2创建PVC资源pvc.yaml步骤3Deployment 挂载 PVC业务关联存储步骤4持久化效果验证4.4 PV 核心访问模式生产必懂五、企业级 K8s 存储方案选型生产落地标准5.1 HostPath仅学习测试5.2 NFS 共享存储中小企业主流5.3 云厂商存储大厂生产标配5.4 存储类 SC动态存储高阶生产六、本篇核心总结前言上一篇我们吃透了 K8s 三大核心资源Pod、Deployment、Service掌握了服务部署、滚动更新、版本回滚、动态扩缩容的完整实操。但目前我们的集群还存在两个核心短板完全无法直接上线生产\1.网络认知模糊不知道 Pod 和 Pod、节点和 Pod、内外网之间如何互通分不清 ClusterIP、NodePort 适用场景\2.数据完全不持久容器删除、Pod 重建后所有数据直接丢失数据库、缓存等有状态服务完全无法部署。本篇一次性补齐 K8s 生产最后两大核心能力容器网络原理 数据持久化存储。全程白话通俗讲解、原理实操结合、区分新手易错点、落地企业标准存储方案学完即可部署有状态生产服务。一、K8s 标准网络模型全网统一核心准则K8s 拥有强制统一的网络规范所有网络插件Calico/Flannel都必须遵循只需记住三句核心规则彻底吃透 K8s 网络底层逻辑1.1 K8s 网络三大铁律每个 Pod 拥有唯一独立 IP集群内所有 Pod IP 不重复无需 NAT 转换可直接通信Pod 与 Pod 无差别互通无论两个 Pod 在同一节点、还是跨不同节点默认直接连通无需手动配置路由Pod IP 动态可变Pod 是临时资源重建、迁移、扩容后 IP 会改变绝对不能用 Pod IP 固定访问服务1.2 K8s 四层网络通信架构通俗分层从内到外依次为容器 → Pod → 节点 → 集群外网容器和容器同 Pod 内容器共享网络栈直接本地通信Pod 和 Pod集群核心通信方式同节点/跨节点均可直连Pod 和 Node节点可直接访问 PodPod 可访问节点服务集群和外网通过 Service 端口映射实现双向访问二、Pod 互通原理同节点 跨节点 白话拆解很多新手疑惑为什么不同服务器上的 Pod不配置任何路由就能互相访问核心依靠我们之前部署的Calico 网络插件下面分两种场景讲透。2.1 同节点 Pod 互通最简单同一台服务器上的所有 Pod共享节点网桥设备数据转发流程PodA → 节点虚拟网桥 → 直接转发到 PodB特点无需经过物理网卡、无需路由跳转、转发速度最快、延迟极低。2.2 跨节点 Pod 互通核心重点不同服务器上的 Pod 通信依靠 Calico 实现隧道转发完整流程节点A 上的 PodA 发起访问请求目标为节点B 上的 PodB IP节点A 内核识别目标 Pod 为跨节点地址将数据包交给 Calico 组件Calico 通过 VXLAN 隧道封装数据包通过物理网卡发送到目标节点B节点B 的 Calico 解包将数据转发给本地目标 PodB通俗总结Calico 相当于给所有节点搭建了一条专属高速隧道让整个集群所有 Pod 处于同一个局域网天然互通。三、ClusterIP / NodePort 彻底区分新手100%混淆点Service 是 Pod 的统一入口其中最常用的两种类型ClusterIP、NodePort是日常开发、面试最高频考点本节彻底分清用途、场景、区别。3.1 ClusterIP默认类型核心定位集群内部专属服务入口自动分配一个集群虚拟内网 IP仅集群内部节点、Pod 可以访问外网电脑、手机、公网无法直接访问自带负载均衡自动分发流量到后端多个 Pod适用场景微服务内部互相调用例如Java 网关调用订单服务、用户服务调用支付服务服务全部部署在集群内无需外网访问首选 ClusterIP。3.2 NodePort测试/外网访问类型核心定位对外开放服务入口在所有集群节点上统一开启一个 30000-32767 区间的物理端口外网可通过服务器公网IP:端口直接访问服务流量流程外网IP:端口 → 节点端口 → Service → 后端Pod适用场景前端页面、测试环境、需要外网访问的服务3.3 两者核心区别对照表一目了然对比维度ClusterIPNodePort访问范围仅集群内部支持外网公网访问端口范围随机内网端口固定 30000-32767生产用途微服务内部调用主力测试、外网暴露、临时演示性能开销低纯内网转发略高多一层节点端口映射企业最佳实践内部服务一律用 ClusterIP绝不乱用 NodePort避免端口暴露带来的安全风险。四、K8s 数据持久化核心PV / PVC 完整实战默认情况下容器数据全部存在容器内部删除 Pod、重建 Pod、重启容器数据直接清零完全无法用于数据库、文件存储等业务。K8s 通过PV PVC实现数据持久化彻底实现「容器销毁数据不丢」是所有有状态服务的存储核心方案。4.1 PV、PVC 白话定义永久记住PVPersistentVolume 持久卷集群级真实存储空间由运维/系统提前创建代表服务器真实硬盘、NFS共享存储、云硬盘独立于Pod存在Pod删了PV和数据依然保留。通俗理解提前建好的仓库真实空间PVCPersistentVolumeClaim 持久卷声明用户存储申请单由开发者创建用来向集群申请存储空间只需要填写「需要多大空间、读写权限」无需关心底层存储是硬盘还是云存储。通俗理解租仓库的申请单据4.2 PV-PVC-Pod 绑定关系核心链路真实存储(PV) → 申请绑定(PVC) → 挂载进Pod流程运维创建PV储备空间 → 开发写PVC申请空间 → K8s自动匹配PV与PVC → 挂载到容器目录实现数据持久化4.3 手把手实战PVPVC 数据持久化我们通过 Nginx 实战验证挂载持久化存储删除 Pod 重建后自定义数据不丢失。步骤1创建PV资源pv.yamlapiVersion:v1kind:PersistentVolumemetadata:name:nginx-pvspec:capacity:storage:5Gi# 定义PV存储空间大小5GaccessModes:-ReadWriteOnce# 访问模式单节点读写hostPath:path:/data/nginx-pv# 服务器本地真实存储路径执行创建命令kubectl apply-fpv.yaml kubectl getpv状态说明此时 PV 状态为 Available空闲可用等待 PVC 绑定。步骤2创建PVC资源pvc.yamlapiVersion:v1kind:PersistentVolumeClaimmetadata:name:nginx-pvcspec:accessModes:-ReadWriteOnceresources:requests:storage:5Gi# 申请5G存储空间与PV匹配执行创建命令kubectl apply-fpvc.yaml kubectl get pvc绑定效果PVC 创建后自动匹配同规格 PV状态变为 Bound绑定成功存储通道建立完成。步骤3Deployment 挂载 PVC业务关联存储修改 Nginx 部署文件将持久化存储挂载到容器目录apiVersion:apps/v1kind:Deploymentmetadata:name:nginx-demospec:replicas:1selector:matchLabels:app:nginxtemplate:metadata:labels:app:nginxspec:containers:-name:nginximage:nginx:alpineports:-containerPort:80# 挂载配置volumeMounts:-name:nginx-datamountPath:/usr/share/nginx/html# 容器网页目录volumes:-name:nginx-datapersistentVolumeClaim:claimName:nginx-pvc# 关联上面创建的PVC重新部署服务kubectl apply-fnginx-deploy.yaml步骤4持久化效果验证进入容器手动创建自定义页面文件删除当前 Pod等待 K8s 自动重建新 Pod进入新 Pod 查看文件数据依然存在持久化生效核心原理数据不再存在容器内部而是存在服务器真实 PV 目录Pod 重建不会影响底层存储数据。4.4 PV 核心访问模式生产必懂ReadWriteOnce(RWO)仅单个节点可读写最常用适配绝大多数单机业务ReadOnlyMany(ROXM)多节点只读适合静态文件共享ReadWriteMany(RWXM)多节点可读写适配集群共享读写业务五、企业级 K8s 存储方案选型生产落地标准新手学习用本地 HostPath PV生产环境绝对不用本节整理企业主流存储方案适配不同业务场景。5.1 HostPath仅学习测试将节点本地目录作为存储禁止生产使用缺点Pod 漂移到其他节点数据直接丢失无法集群共享稳定性极差5.2 NFS 共享存储中小企业主流搭建独立 NFS 文件服务器所有节点挂载共享目录统一提供存储优点配置简单、支持多节点共享、数据独立持久、稳定性高适用场景中小型项目、文件存储、日志存储、普通数据库挂载5.3 云厂商存储大厂生产标配阿里云/腾讯云/华为云 云硬盘、NAS 存储优点高可用、自动备份、弹性扩容、无需维护底层硬件适用场景云上生产集群、高可用核心业务、大规模微服务集群5.4 存储类 SC动态存储高阶生产传统 PV 需手动创建StorageClass 可实现动态自动创建 PV开发者只需创建 PVC集群自动分配对应规格 PV无需运维手动干预是大型企业标准化存储方案。六、本篇核心总结1、K8s 网络核心三准则Pod 独立IP、全网互通、IP 动态可变Calico 插件实现跨节点隧道通信2、ClusterIP 用于集群内部微服务调用NodePort 用于外网测试访问生产优先使用 ClusterIP保障安全3、PV 是真实集群存储资源PVC 是存储申请单二者绑定实现容器数据解耦与持久化4、彻底解决容器数据丢失问题支持 Pod 重建、迁移、扩容场景下数据不丢失5、企业存储分层明确本地HostPath用于学习、NFS用于中小企业、云存储/SC用于大厂生产高可用场景。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价