首页/云/云与容器速查/Service 概念与四种类型
Kubernetes68 条

Service 概念与四种类型

Service 给一组 Pod 提供稳定虚拟 IP 与 DNS:靠标签选择器绑定后端,随 Pod 增删自动维护 Endpoints。四种类型:ClusterIP(默认)/NodePort/LoadBalancer/ExternalName。

云与容器速查云更新于 2026-10-13

Service 是什么

Service 为一组实例提供稳定的虚拟地址与域名:它靠标签选择器绑定后端实例,实例增删时后端列表自动维护。四种类型对应不同的暴露范围,从集群内部访问到对外提供入口都有对应做法,是集群内服务发现与流量入口的基础对象。

基本信息

作用为标签匹配的一组实例提供固定地址与名字,屏蔽实例变化
四种类型集群内部地址、节点端口、云负载均衡、外部域名指向
端口概念服务端口对外暴露,目标端口指向容器实际监听端口
后端维护由选择器自动维护后端列表,不匹配时列表为空
协议支持 TCP、UDP,转发规则由转发模式决定
访问方式集群内可直接用服务名访问,跨命名空间需带命名空间后缀

典型使用场景

  • 服务间调用:内部服务用集群内地址互相访问,不关心实例地址变化
  • 对外提供入口:用负载均衡类型把服务暴露到公网或内网入口
  • 临时调试:节点端口类型在没有负载均衡的环境里快速验证
  • 接入外部依赖:用外部域名类型把集群内的名字指向外部服务地址
  • 流量分流:同一套实例用多个服务或端口组合暴露不同能力
  • 灰度入口:通过入口规则把不同路径或域名指向不同服务

四种类型速览

类型暴露方式典型用途
集群内部集群内虚拟地址服务间调用,默认类型
节点端口每个节点上的高位端口测试环境、无负载均衡时外部访问
负载均衡云厂商负载均衡加公网地址生产对外入口
外部域名指向外部域名的别名接入集群外的依赖服务

服务定义示例

服务定义示例
apiVersion: v1
kind: Service
metadata:
  name: web
spec:
  type: ClusterIP
  selector:
    app: web
  ports:
    - name: http
      port: 80
      targetPort: 8080
      protocol: TCP
# 端口与目标端口要分清:前者是服务端口,后者是容器监听端口
服务端口与目标端口是两个概念:服务端口是对外暴露的端口,目标端口是容器实际监听的端口,写错时探测可能通过但流量打不到应用。
访问不通先看后端列表:列表为空说明选择器与实例标签不匹配,或实例还没通过就绪检查,这两类原因占到多数。
负载均衡类型依赖云厂商实现:创建后会同时产生云上的负载均衡资源,删除服务时记得确认关联资源是否一起回收,避免继续计费。
跨命名空间访问要带命名空间后缀:只写服务名时默认在当前命名空间里解析,找不到就会报域名解析失败。

服务配置的核对清单

  • 核对选择器与实例标签完全一致,避免后端列表为空
  • 核对服务端口与目标端口分别对应哪一层
  • 核对协议类型,非网页类服务常需要显式声明
  • 核对就绪检查,避免尚未就绪的实例接收流量
  • 核对命名空间,跨空间访问需要带上命名空间后缀
  • 核对云资源回收,删除服务时确认入口资源一并清理
服务的命名与端口规划要形成约定:同一命名空间内服务名唯一,端口用途写进文档,后续排查不必靠猜测。

易错点

  • 选择器与实例标签不一致,后端列表为空,访问直接被拒绝
  • 服务端口与目标端口写混,配置看似正常但流量打不到应用端口
  • 用节点端口类型上生产,节点端口范围长期对外开放,暴露面失控
  • 实例没有就绪检查,未初始化完成的实例被加进后端列表
  • 删除负载均衡类型服务时没确认云资源回收,产生持续的闲置费用

数据来源与参考

  • Kubernetes Docs:Service

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌