news 2026/3/5 4:41:18

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/2/24 20:24:56

企业渗透测试全流程实战:从合规到落地(附Word适配版)

企业渗透测试全流程实战&#xff1a;从合规到落地&#xff08;附Word适配版&#xff09; 在数字化办公与业务上云的趋势下&#xff0c;企业网络边界持续扩大&#xff0c;内部架构日趋复杂&#xff0c;传统被动防御已难以抵御针对性攻击。企业渗透测试作为“主动发现风险、前置…

作者头像 李华
网站建设 2026/3/4 19:25:51

2026年不懂AI安全的测试员失业危机:专业分析与应对策略

行业地震下的终极预警 2026年&#xff0c;软件测试领域正经历一场由AI驱动的革命性重构&#xff0c;其中AI安全测试成为关键分水岭。随着企业加速采用AI工具进行漏洞检测和风险防护&#xff0c;不懂AI安全的测试员面临被边缘化的紧迫威胁。数据显示&#xff0c;2025年全球测试岗…

作者头像 李华
网站建设 2026/3/2 18:24:23

【深度收藏】AI Agent认知架构全解:八大核心模块详解大模型原理

本文是一篇关于AI Agent认知架构的综述&#xff0c;详细介绍了八大核心模块&#xff1a;学习、推理、记忆、世界模型、奖励、情绪、感知和行动系统。文章通过人类与AI的类比&#xff0c;阐述了各模块在人类大脑中的作用及AI实现方式&#xff0c;展示了如何构建更强大的自适应AI…

作者头像 李华
网站建设 2026/3/4 11:29:09

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

在大语言模型&#xff08;LLM&#xff09;中&#xff0c;NTP 是 Next Token Prediction&#xff08;下一个 Token 预测&#xff09;的缩写。它是所有生成式大模型&#xff08;如 GPT 系列、Claude、Llama&#xff09;最底层、最核心的运行机制。如果把大模型比作一个拥有无穷智…

作者头像 李华