Kurbenetes-Service(1)

在Kubernetes(简称K8s)的生态中,Pod是最小的部署单元,但Pod存在一个天然的"痛点"------生命周期短暂,IP地址会随着Pod的创建、销毁而动态变化。如果直接通过Pod IP访问应用,稳定性根本无法保障。这时候,Service就应运而生了。

本文将从"为什么需要Service"出发,逐步深入讲解Service的核心概念、工作原理、常见类型及实战配置,帮你彻底搞懂Service在K8s集群中的作用和使用方式。

一、为什么需要Kubernetes Service?

要理解Service的价值,首先要明确Pod的局限性:

  • IP动态变化:Pod重启、重建(如滚动更新、节点故障)后,IP会重新分配,客户端无法固定依赖这个IP;

  • 负载均衡缺失:多副本Pod部署时,客户端需要自己实现请求分发逻辑,无法高效利用多副本提升并发能力;

  • 网络隔离与访问控制:直接暴露Pod到集群外存在安全风险,需要一层"中间层"统一管理访问规则。

Service的核心作用就是解决上述问题:它为一组具有相同功能的Pod提供一个固定的访问入口(ClusterIP),并通过标签选择器(Label Selector)关联Pod,实现请求的负载均衡和Pod的动态替换无感。

核心总结:Service是Pod的"稳定代理",屏蔽了Pod的动态变化,提供统一、可靠的访问方式。

二、Service核心概念与工作原理

2.1 核心组件

一个完整的Service由以下关键部分组成:

  1. 标签选择器(Label Selector) :Service通过Label关联Pod,只有带有对应标签的Pod才会被纳入Service的管理范围。例如,标签为app: nginx的Pod,会被匹配selector: {app: nginx}的Service关联;

  2. ClusterIP:Service在集群内部的固定虚拟IP,是Service的核心访问入口。ClusterIP仅在集群内部可访问,外部无法直接访问;

  3. 端口映射(Ports):定义Service的端口与Pod容器端口的映射关系,包括:

    1. port:Service暴露的端口(集群内部访问时使用);

    2. targetPort:Pod容器中应用实际监听的端口(必须与容器内应用端口一致);

    3. nodePort(仅NodePort类型):集群节点暴露的端口(外部访问时使用);

    4. containerPort:容器内部应用的端口(在Pod定义中指定)。

  4. Endpoints:Service自动维护的Pod访问列表,记录了关联Pod的IP和targetPort。当Pod动态变化时,Endpoints会自动更新,确保Service始终能指向可用的Pod。

2.2 工作流程

Service的工作流程可以简化为以下几步:

  1. 用户创建Service,指定标签选择器和端口映射;

  2. K8s控制器(Endpoint Controller)根据标签选择器匹配Pod,生成并维护Endpoints列表;

  3. 当客户端访问Service的ClusterIP:port时,请求会被K8s的网络插件(如Calico、Flannel)转发到Endpoints中的某个Pod的IP:targetPort(默认采用轮询负载均衡策略);

  4. 若Pod发生销毁、重建或扩容缩容,Endpoints会实时更新,Service无需任何配置修改,客户端访问不受影响。

相关推荐
last demo4 小时前
docker镜像
运维·docker·容器
ICT董老师4 小时前
kubernetes中operator与helm有什么区别?部署mysql集群是选择operator部署还是helm chart部署?
linux·运维·mysql·云原生·容器·kubernetes
L1624764 小时前
Prometheus 监控 K8s 集群全指南(适配 K8s 特性 + 实操部署)
docker·容器·kubernetes
王旭晨4 小时前
【高并发架构】从 0 到亿,从单机部署到 K8s 编排:高并发架构的 8 级演进之路
容器·架构·kubernetes
阿方索5 小时前
Kubernetes 1.28 高可用集群安装指南(Docker 运行时)
docker·容器·kubernetes
独自归家的兔6 小时前
解决k8s UI界面进不去
云原生·容器·kubernetes
last demo6 小时前
docker基础
运维·docker·容器·eureka
孤岛悬城6 小时前
59 k8s集群调度
云原生·kubernetes
独自归家的兔7 小时前
K8s 核心概念深度解析:Pod 是什么?
云原生·容器·kubernetes