Service

Service 是 Kubernetes 中负责在 Pod 和外部之间建立稳定通信的组件。它解决了 Pod IP 动态变化的问题,让应用可以通过固定的入口访问 Pod。


🧩 Service 的职责

  • 稳定访问
    👉 Pod 的 IP 会随重启或调度而变化,Service 提供一个固定的虚拟 IP(ClusterIP),保证访问稳定。
  • 负载均衡
    👉 当有多个 Pod 副本时,Service 会自动把请求分发到不同的 Pod。
  • 跨组件通信
    👉 Service 让不同的应用组件(前端、后端、数据库)能够通过固定地址互相访问。
  • 对外暴露
    👉 可以通过 NodePort 或 LoadBalancer 类型,把集群内的服务暴露到外部。

📌 类比理解

  • Service = 前台接待员
    • Pod 就像公司里的员工,他们的工位(IP)可能经常变动。
    • 前台接待员(Service)始终在固定位置,负责把来访者(请求)引导到正确的员工(Pod)。
    • 如果有多个员工能处理同样的事情,接待员会把来访者平均分配给他们(负载均衡)。

📝 常见 Service 类型

  • ClusterIP:默认类型,只能在集群内部访问。
  • NodePort:在每个节点上开放一个端口,外部可以通过 NodeIP:Port 访问。
  • LoadBalancer:与云平台结合,自动创建外部负载均衡器。
  • ExternalName:把 Service 映射到外部域名。

📝 示例配置

apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  selector:
    app: myapp
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080
  type: ClusterIP

👉 这个 Service 会把请求转发到标签为 app=myapp 的 Pod 上。


💡 总结

  • Service 是 Kubernetes 的 前台接待员。
  • 它提供稳定入口,解决 Pod IP 动态变化的问题。
  • 支持负载均衡和对外暴露,是应用通信的关键组件。
posted @ 2026-05-28 11:02  Donaver  阅读(27)  评论(0)    收藏  举报