Kubernetes 系列【17】服务:NodePort、LoadBalancer、ExternalName
文章目录1. NodePort1.1 核心概念1.2 工作原理1.3 端口分配机制1.4 案例演示1.5 服务验证测试1.6 优缺点与生产规范2. LoadBalancer2.1 核心概念2.2 工作原理2.3 案例演示2.4 验证测试2.5 生产核心优势与边界3. ExternalName3.1 核心概念3.2 工作原理3.3 案例演示3.4 生产致命坑点3.5 使用场景1. NodePort1.1 核心概念NodePort是Kubernetes用于集群外网临时暴露服务的基础资源类型严格基于ClusterIP构建。开启NodePort后K8s会在集群所有节点监听同一个固定物理端口外网用户通过任意节点「物理IPNodePort端口」即可访问集群内部服务。核心依赖关系NodePort内置ClusterIP创建NodePort服务必然自动生成ClusterIP同时支持「集群内VIP虚拟IP访问 集群外节点端口访问」双模式。1.2 工作原理当用户创建NodePort类型Service时控制平面会完成两层资源分配从ServiceCIDR池中分配固定ClusterIP用于集群内部流量转发从NodePort端口池中分配一个固定宿主机端口在所有节点开启端口监听。所有节点的kube-proxy会同步生成NodePort专属iptables/ipvs规则外网流量进入节点物理端口后经过内核规则转发至ClusterIP再经由负载均衡转发至后端真实Pod。外网客户端访问节点公网IP:30080完整链路如下节点端口监听流量抵达集群节点物理网卡被NodePort监听端口捕获内核规则拦截节点iptables匹配NodePort规则将外网流量转发至本机ClusterIP服务负载分发经由KUBE-SVC规则链随机选择后端健康PodDNAT地址转换将ClusterIP改写为真实Pod IP跨节点/本机投递通过CNI网络转发至目标业务Pod完成请求响应。核心特性任意节点均可转发流量单节点宕机不影响整体服务可用性。1.3 端口分配机制默认端口范围K8s官方固定预留30000–32767规避系统端口冲突自定义端口范围可通过kube-apiserver启动参数--service-node-port-range自主修改动静分区策略集群默认机制静态段30000–30085支持手动指定port适合固定端口业务动态段30086–32767未指定端口时集群自动随机分配降低冲突概率多网卡精准绑定生产多网卡节点可通过kube-proxy参数--nodeport-addresses限定NodePort仅绑定内网/公网指定网卡避免服务错误暴露。1.4 案例演示基于前文Nginx3副本集群创建NodePort服务支持手动指定端口。apiVersion:v1kind:Servicemetadata:name:nginx-nodeport-svcnamespace:defaultspec:# 服务类型指定为NodePorttype:NodePortselector:app:nginx-webports:-name:http-webport:8080targetPort:80nodePort:30080# 手动指定静态端口可选30000-30085protocol:TCP关键字段解析type: NodePort声明为节点端口暴露模式nodePort手动指定宿主机端口不写则集群自动随机分配保留port、targetPort解耦特性兼容集群内访问与外网访问。1.5 服务验证测试查看NodePort服务信息kubectl get svc nginx-nodeport-svc输出示例NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S)AGE nginx-nodeport-svc NodePort10.101.1.227none8080:30089/TCP 2m37s查看后端Pod端点kubectl get endpoints nginx-nodeport-svc输出示例NAME ENDPOINTS AGE nginx-nodeport-svc100.8.42.200:80,100.8.42.203:80,100.9.87.177:80 3m26s外网访问测试替换为任意节点IPcurl节点IP:300801.6 优缺点与生产规范优点零依赖、无需云厂商组件物理机集群、虚拟机集群通用配置极简快速暴露服务适合测试调试全节点监听具备基础高可用能力。缺点 生产禁忌端口数量有限最大仅2768个可用端口无法大规模部署业务可修改无七层路由、无证书、无限流、无监控流量治理能力缺失直接暴露节点端口存在节点端口扫描、攻击风险。生产规范仅用于测试环境、临时调试、内网穿透严禁生产公网直接使用。2. LoadBalancer2.1 核心概念LoadBalancer是云托管 K8s 生产环境标准对外服务方案在ClusterIPNodePort双层能力之上对接云厂商负载均衡组件阿里云SLB、腾讯云CLB、AWS ELB自动分配独立公网/内网固定IP实现企业级高可用、高安全、高并发的外网服务发布。环境限制仅云厂商EKS/ACK/TKE等托管集群原生支持物理机自建K8s无原生LoadBalancer能力需手动部署metallb组件实现。2.2 工作原理LoadBalancer是三层嵌套转发模型自上而下依次为云LB-NodePort-ClusterIP-Pod创建流程全自动自动生成底层资源创建LoadBalancer服务时集群自动创建专属ClusterIP和NodePort端口云端资源自动创建云控制器监听Service变更自动在云端创建SLB/CLB负载均衡实例后端节点自动注册云LB自动将集群所有健康节点的NodePort端口加入后端池自动剔除故障节点全链路流量托管外网流量统一经过云LB清洗、防护、调度后转发至集群内部。2.3 案例演示apiVersion:v1kind:Servicemetadata:name:nginx-lb-svcnamespace:defaultspec:# 生产对外核心类型type:LoadBalancerselector:app:nginx-webports:-name:http-webport:80targetPort:80protocol:TCP# 可选开启会话保持sessionAffinity:ClientIPsessionAffinityConfig:clientIP:timeoutSeconds:1800字段核心解析type: LoadBalancer触发云厂商自动创建负载均衡实例无需手动配置NodePort、ClusterIP全部自动分配兼容会话保持、权重调度、健康检查等拓展能力云厂商可拓展配置内网LB、公网LB、带宽限速、DDoS防护、黑白名单。2.4 验证测试查看LB服务获取自动分配的公网IPkubectl get svc nginx-lb-svc输出示例NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S)AGE nginx-lb-svc LoadBalancer10.98.85.4pending80:43812/TCP 71s该类型仅在云厂商托管K8s集群EKS、ACK、TKE等支持物理机自建K8s集群无原生LoadBalancer能力所以一直显示pending状态。2.5 生产核心优势与边界生产优势独享公网IP稳定不漂移适合域名绑定上线依托云LB原生能力DDoS防护、流量监控、日志审计、带宽扩容自动故障摘除节点实现秒级高可用切换无需暴露节点IP集群内网节点安全隔离。适用边界中小型业务直接使用 · 对外暴露大型多域名、多路径业务建议LoadBalancerIngress/Gateway API组合使用。3. ExternalName3.1 核心概念ExternalName是K8s唯一的无代理、无端口、无流量转发特殊Service类型。它不做四层负载均衡、不转发数据包、不绑定任何Pod端点仅作为集群CoreDNS的域名别名解析工具将集群内部Service域名CNAME映射到集群外部的独立域名。该类型彻底脱离传统Service流量转发模型仅作用于DNS解析层是纯域名解析资源。3.2 工作原理传统ClusterIP/NodePort/LoadBalancer均依赖kube-proxy内核规则转发流量而ExternalName完全不依赖创建ExternalName资源后集群CoreDNS自动生成一条CNAME解析记录集群内Pod访问该Service域名时DNS直接返回外部目标域名客户端拿到外部域名后直接访问外部服务流量不经过集群任何代理。核心特点无ClusterIP、无端口、无后端端点、无流量转发、无负载均衡。3.3 案例演示将集群内域名my-service.prod.svc.cluster.local映射至外部数据库域名my.database.example.comapiVersion:v1kind:Servicemetadata:name:my-servicenamespace:prodspec:type:ExternalNameexternalName:my.database.example.com⚠️ 重点ExternalName Service不在网络层转发流量仅在集群CoreDNS中注册一条CNAME记录。集群内程序访问内部Service域名时DNS自动引导至外部目标域名实现域名别名映射。仅域名翻译不存在代理。3.4 生产致命坑点ExternalName仅适配 TCP 裸连接服务完全不适合HTTP/HTTPS七层业务生产高频报错原因HTTP Host 头不匹配客户端请求Host为内部Service域名外部Web服务无法识别直接404HTTPS 证书校验失败证书域名与访问域名不一致SSL握手失败无流量治理能力无重试、超时、限流、监控、熔断故障无法自愈。3.5 使用场景✅推荐使用场景集群内统一管理外部中间件域名MySQL、Redis、MQ、ESTCP协议、无Host依赖、无证书校验的外部服务统一收口外部依赖业务仅调用内部固定域名外部地址变更无需改代码。❌绝对禁止场景所有HTTP/HTTPS网站、接口、网关七层业务需要SSL证书校验、域名鉴权的服务需要流量监控、限流、灰度的核心业务。

相关新闻

手机拍摄数据集的3D高斯重建实战指南

手机拍摄数据集的3D高斯重建实战指南

1. 项目概述:手机拍摄数据集的高斯重建方案去年接触3D Gaussian Splatting技术时,我就被其渲染效率所震撼。相比传统NeRF需要数小时训练,高斯泼溅能在20分钟内完成同等质量的重建。但当时最大的痛点在于:现有方案大多依赖专业相机…

2026/7/14 18:20:52阅读更多 →
APContact数据模型深度解析:iOS通讯录信息的面向对象封装

APContact数据模型深度解析:iOS通讯录信息的面向对象封装

APContact数据模型深度解析:iOS通讯录信息的面向对象封装 【免费下载链接】APAddressBook Easy access to iOS address book 项目地址: https://gitcode.com/gh_mirrors/ap/APAddressBook iOS开发者在处理通讯录数据时,常常面临复杂的数据结构和繁…

2026/7/14 18:20:52阅读更多 →
ColorMatchTabs最佳实践:避免常见错误的10个实用技巧

ColorMatchTabs最佳实践:避免常见错误的10个实用技巧

ColorMatchTabs最佳实践:避免常见错误的10个实用技巧 【免费下载链接】ColorMatchTabs This is a Review posting app that let user find interesting places near them 项目地址: https://gitcode.com/gh_mirrors/co/ColorMatchTabs 想要为你的iOS应用添加…

2026/7/14 18:20:52阅读更多 →
计算机毕业设计之凌云电器在线商城管理系统

计算机毕业设计之凌云电器在线商城管理系统

凌云电器在线商城管理系统的目的是让使用者可以更方便的将人、设备和场景更立体的连接在一起。能让用户以更科幻的方式使用产品,体验高科技时代带给人们的方便,同时也能让用户体会到与以往常规产品不同的体验风格。 与安卓,iOS相比较起来&am…

2026/7/14 19:20:58阅读更多 →
Flutter Windows 开始支持 Impeller ,还修复了多窗口 bug

Flutter Windows 开始支持 Impeller ,还修复了多窗口 bug

因为这段时间一直在使用 Flutter 多窗口的原因,有一个 windows 多窗口的 bug 一直挺难受的,就是在切换到项目子窗口的时候,会默认激化主窗口,之后才能再次点击回到子窗口: 更准确说是,就是激活一个 child R…

2026/7/14 19:20:58阅读更多 →
计算机毕业设计之基于SSM框架的流浪狗收容管理系统

计算机毕业设计之基于SSM框架的流浪狗收容管理系统

近年来,科技飞速发展,在经济全球化的背景之下,互联网技术将进一步提高社会综合发展的效率和速度,互联网技术也会涉及到各个领域,而流浪狗收容管理系统在网络背景下有着无法忽视的作用。信息管理系统的开发是一个不断优…

2026/7/14 19:20:58阅读更多 →
复盘工具只总结成功经验,编写程序,专门归档日常小事里遗憾瞬间,从遗憾点挖掘可优化方向,转化为日常微创新清单。

复盘工具只总结成功经验,编写程序,专门归档日常小事里遗憾瞬间,从遗憾点挖掘可优化方向,转化为日常微创新清单。

用 Python 构建一个“遗憾驱动创新”的日常复盘工具:不总结成功经验,专门归档日常小事里的遗憾瞬间,从“没做好”里挖出“下次可以怎么不一样”。内容紧扣心理健康与创新能力课程,保持去营销化、中立、可教学、可复用,…

2026/7/14 19:20:58阅读更多 →
薪资计算器只计算收入多少,编写程序,换算每份工作时消耗的内心热情值,优先推荐热情损耗最低的岗位,而非单纯高薪岗位。

薪资计算器只计算收入多少,编写程序,换算每份工作时消耗的内心热情值,优先推荐热情损耗最低的岗位,而非单纯高薪岗位。

项目名:PassionCalc — 内心热情值岗位推荐系统一、实际应用场景描述在心理健康与创新能力课程中,有一个被广泛验证却难以落地的命题:"薪资本身不是动力,热情才是可持续创造力的燃料"现实场景包括:- 高薪岗位…

2026/7/14 19:20:58阅读更多 →
飞牛NAS打造私人证件照工坊

飞牛NAS打造私人证件照工坊

目录 一、部署 1.启动Docker 2.拉取镜像 3.启动镜像 4.进入应用 二、简单使用 三、进阶使用 四、远程访问 证件照是我们日常生活工作中经常需要用到的。生活在数字时代的我们,当然不会选择去“照相馆”,我们只需用以前的照片或者手机现场拍照,利用电脑、手机上的“应…

2026/7/14 19:15:57阅读更多 →
VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异当你在VSCode中启动一个新的TypeScript项目时,第一个技术决策往往从安装方式开始。这个看似简单的选择——全局安装还是项目本地安装——实际上会深刻影响你的开发流程、团队协作和…

2026/7/14 4:56:14阅读更多 →
智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 智慧树刷课插件是一款专为智慧树在线教育平台设计的Chrome浏…

2026/7/14 2:55:05阅读更多 →
Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在GOG或Epic Games Store购买了心仪的游戏…

2026/7/14 6:17:41阅读更多 →
【Cursor数据库安全红线】:自动执行SQL前必须校验的6项权限策略,金融级项目已强制落地

【Cursor数据库安全红线】:自动执行SQL前必须校验的6项权限策略,金融级项目已强制落地

更多请点击: https://intelliparadigm.com 第一章:Cursor数据库安全红线概览 Cursor 作为一款基于 AI 的智能编程助手,其本地数据库(SQLite 存储)承载着用户代码片段、会话历史、自定义规则及敏感上下文信息。理解其安…

2026/7/14 0:03:18阅读更多 →
【Notion AI写作避坑白皮书】:基于127份真实用户失败案例,总结6大致命误用陷阱

【Notion AI写作避坑白皮书】:基于127份真实用户失败案例,总结6大致命误用陷阱

更多请点击: https://codechina.net 第一章:Notion AI写作辅助的底层能力边界认知 Notion AI 并非通用大语言模型的直接封装,而是基于 Llama 系列与自研微调模型构建的轻量化推理服务,其输入上下文窗口严格限制在 8192 token&…

2026/7/14 0:03:18阅读更多 →
AI Agent数据越界行为如何被精准溯源?——基于GDPR/CCPA双合规的5层审计框架实战指南

AI Agent数据越界行为如何被精准溯源?——基于GDPR/CCPA双合规的5层审计框架实战指南

更多请点击: https://kaifayun.com 第一章:AI Agent数据越界行为的合规性挑战与溯源必要性 AI Agent在自主执行任务过程中,可能因提示注入、上下文污染或权限配置缺陷,无意或有意访问、缓存、传输受保护数据(如PII、G…

2026/7/14 0:03:18阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/14 15:07:30阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/14 4:45:36阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/14 2:42:17阅读更多 →