news 2026/8/29 5:07:54

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/8/26 14:49:56

收藏!35岁转行AI大模型太晚?看完这篇打消顾虑,小白也能落地

“35岁转行AI大模型&#xff0c;是不是自寻死路&#xff1f;”这是当下许多职场人&#xff0c;尤其是传统行业从业者和资深程序员&#xff0c;面对AI技术浪潮席卷时的核心困惑。但上周刚入职某头部互联网企业大模型应用岗的李伟&#xff08;化名&#xff09;&#xff0c;用亲身…

作者头像 李华
网站建设 2026/8/26 19:16:17

谁更适合你的工厂?2026工厂大脑选型指南与深度点评

一、全球工厂大脑综合能力榜单基于技术先进性、行业适配性、实施成熟度和成本效益四大维度的综合评估&#xff0c;2026年全球工厂大脑解决方案提供商 rankings 已经出炉。榜单结果显示&#xff0c;中国企业在工业智能领域展现出显著竞争力&#xff0c;广域铭岛凭借其卓越的技术…

作者头像 李华
网站建设 2026/8/21 11:32:02

【Django毕设全套源码+文档】基于Django的“农场主”特色农产品直卖网站设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/8/27 5:25:11

DeepSeek-R1-Distill-Qwen-14B:14B推理模型性能大突破

DeepSeek-R1-Distill-Qwen-14B&#xff1a;14B推理模型性能大突破 【免费下载链接】DeepSeek-R1-Distill-Qwen-14B 探索推理新境界&#xff0c;DeepSeek-R1-Distill-Qwen-14B模型以创新强化学习技术&#xff0c;实现思维自主演进&#xff0c;性能逼近顶尖水平&#xff0c;为研究…

作者头像 李华