news 2026/6/10 19:03:10

K8S NodePort 与 ClusterIP Service 类型的包含关系详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
K8S NodePort 与 ClusterIP Service 类型的包含关系详解

在K8S service类型中,NodePort 服务包含了 ClusterIP 服务的所有能力

这是一个重要的核心概念:NodePort 服务是在 ClusterIP 服务基础上的扩展,而不是一个独立的替代品。

详细解释:

1.架构层次

NodePort Service = ClusterIP Service + NodePort 端口映射

2.实际访问方式

一个 NodePort 类型的 Service 实际上同时支持三种访问方式

方式一:通过 ClusterIP(内部访问)
apiVersion:v1kind:Servicemetadata:name:my-servicespec:type:NodePort# 注意这里指定的是 NodePortselector:app:my-appports:-port:80# ClusterIP 端口targetPort:8080# Pod 端口nodePort:30007# NodePort 端口(可选,系统自动分配)

集群内部访问

# 通过 ClusterIP 直接访问curlhttp://<cluster-ip>:80# 通过 DNS 域名访问(完全支持!)✅curlhttp://my-service.default.svc.cluster.local:80curlhttp://my-service:80# 同一命名空间内可省略后缀
方式二:通过 NodePort(外部访问)
# 通过任何节点的 IP + NodePort 访问curlhttp://<node-ip>:30007
方式三:通过 LoadBalancer(如果有云提供商)

如果你在云环境,还可以配置 LoadBalancer,它又是在 NodePort 基础上的扩展。

3.DNS 解析验证

# 查看服务详情kubectl get svc my-service# NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S)# my-service NodePort 10.96.123.456 <none> 80:30007/TCP# 查看 DNS 解析kubectl run -it --rmtest--image=busybox --restart=Never --nslookupmy-service# Server: 10.96.0.10# Address 1: 10.96.0.10 kube-dns.kube-system.svc.cluster.local## Name: my-service# Address 1: 10.96.123.456 my-service.default.svc.cluster.local

4.实际示例

apiVersion:apps/v1kind:Deploymentmetadata:name:nginx-deployspec:replicas:2selector:matchLabels:app:nginxtemplate:metadata:labels:app:nginxspec:containers:-name:nginximage:nginx:alpineports:-containerPort:80---apiVersion:v1kind:Servicemetadata:name:nginx-servicespec:type:NodePort# NodePort 类型selector:app:nginxports:-port:80# 集群内访问端口targetPort:80# Pod 端口nodePort:30080# 节点端口

测试访问

# 1. 在集群内部通过 DNS 访问(ClusterIP 能力)kubectlexec-it<pod-name>--curlhttp://nginx-service# 2. 从外部通过 NodePort 访问curlhttp://<任意节点IP>:30080

5.流量流向示意

外部用户 ↓ Node IP:NodePort (如 192.168.1.100:30007) ↓ Service ClusterIP (如 10.96.123.456:80) ↓ Pod IP:Port (如 10.244.1.2:8080)

总结要点:

  1. NodePort 服务一定包含 ClusterIP,每个 NodePort 服务都会自动分配一个 ClusterIP
  2. K8S DNS 完全支持,可以通过服务名在集群内解析到 ClusterIP
  3. 集群内部访问优先使用 ClusterIP/DNS,不经过节点端口,效率更高
  4. NodePort 不是 ClusterIP 的替代,而是它的超集
  5. 💡最佳实践:集群内部组件间通信使用服务名(DNS),外部访问才用 NodePort

所以,可以完全放心地在集群内部通过service-name.namespace.svc.cluster.local来访问 NodePort 服务!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 11:05:12

网络安全kali渗透学习之web渗透入门—WireShark抓包及常用协议分析,黑客技术零基础入门到精通实战教程!

Wireshark是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包&#xff0c;并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口&#xff0c;直接与网卡进行数据报文交换。 这篇文章教大家WireShark抓包及常用协议分析 WireShark的应用 网络管理…

作者头像 李华
网站建设 2026/6/10 14:21:13

2025年主流Web自动化测试工具对比与推荐

Web自动化测试是保障软件质量与交付效率的关键手段&#xff0c;其核心在于通过脚本或工具模拟用户操作&#xff0c;对Web应用的功能、兼容性、性能等维度进行高效验证。2025年&#xff0c;随着企业数字化进程加速与测试需求复杂化&#xff0c;主流Web自动化测试工具在技术架构、…

作者头像 李华
网站建设 2026/6/10 11:55:08

大模型应用层的“敲门砖“:Dify工作流平台实战指南

Dify类工作流平台已成为大模型应用层从业者的必备技能&#xff0c;其重要性体现在三方面&#xff1a;验证产品经理的原子化需求拆解能力、快速测试业务流程AI化可行性、证明个人在大模型领域的实践经验。掌握Dify不仅能够将过去分散的产品基本功压缩到可视化画布上&#xff0c;…

作者头像 李华
网站建设 2026/6/9 23:47:45

为什么你的副业总失败?开发者变现的5个雷区

软件测试从业者的副业困境 在数字经济时代&#xff0c;软件测试从业者&#xff08;如自动化测试工程师、QA专家&#xff09;常尝试副业变现&#xff0c;如开发测试工具、提供咨询或创建技术课程。然而&#xff0c;90%的尝试以失败告终&#xff0c;根源在于忽视专业陷阱。本文基…

作者头像 李华
网站建设 2026/6/10 12:01:16

2026年远程协作3.0工具全景图:软件测试从业者专业指南

远程协作3.0的崛起与测试行业变革 2026年&#xff0c;远程协作工具已从简单的屏幕共享&#xff08;1.0&#xff09;和实时沟通&#xff08;2.0&#xff09;演进为智能化、集成化的3.0时代&#xff0c;以AI驱动、多模态交互和云端协同为核心特征。全球AI相关企业超17.1万家&…

作者头像 李华
网站建设 2026/6/10 11:58:15

AI核心知识68——大语言模型之NSP (简洁且通俗易懂版)

下一状态预测 (NSP&#xff0c;Next State Prediction) 是从 大语言模型 (LLM) 向 世界模型 (World Model) 进化时的一个核心概念。如果说 NTP (下一个词预测) 是让 AI 学会像人类一样说话&#xff1b;那么 NSP 就是让 AI 学会像人类一样思考物理规律和因果关系。这通常与 Yann…

作者头像 李华