首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Kubernetes集群核心概念 Service

获课:weiranit.fun/14335/

获取ZY方打开链接

Kubernetes集群核心概念:Service详解

一、Service概述

Service是Kubernetes中用于定义一组Pod访问策略的抽象资源,它解决了以下核心问题:

Pod动态性问题:Pod是临时的,IP地址会变化

服务发现:如何让客户端发现并可靠地访问Pod

负载均衡:在多个Pod实例间分配流量

二、Service核心特性

1. 稳定虚拟IP(ClusterIP)

为Pod集合提供唯一的虚拟IP(VIP)

生命周期独立于Pod,即使Pod全部重建,Service IP保持不变

集群内部通过该VIP访问服务

2. 服务发现机制

通过DNS名称访问服务:..svc.cluster.local

环境变量自动注入(可选)

3. 负载均衡

自动将请求分发到后端所有健康的Pod

默认使用轮询(Round Robin)算法

三、Service类型

四、Service工作原理

1. 核心组件协作

kube-proxy:负责实现Service的虚拟IP到PodIP的转换

CoreDNS:提供集群内服务DNS解析

Endpoint Controller:维护Pod与Service的映射关系

2. 流量转发机制

mermaid

复制

graph LR Client -->|请求| ServiceVIP ServiceVIP --> kube-proxy kube-proxy --> Pod1 kube-proxy --> Pod2 kube-proxy --> Pod3

五、Service YAML示例

基本ClusterIP Service

yaml

复制

apiVersion: v1 kind: Service metadata: name: my-service spec: selector: app: my-app # 选择具有此标签的Pod ports: - protocol: TCP port: 80 # Service暴露的端口 targetPort: 9376 # Pod上的端口

NodePort Service

yaml

复制

apiVersion: v1 kind: Service metadata: name: my-nodeport-service spec: type: NodePort selector: app: my-app ports: - port: 80 targetPort: 9376 nodePort: 30007 # 可选,范围30000-32767

六、高级特性

1. Headless Service

yaml

复制

spec: clusterIP: None # 创建无ClusterIP的Service

用途:

需要直接访问Pod的场景(如StatefulSet)

自定义服务发现机制

2. 会话保持(Session Affinity)

yaml

复制

spec: sessionAffinity: ClientIP sessionAffinityConfig: clientIP: timeoutSeconds: 3600

3. 外部流量策略

yaml

复制

spec: externalTrafficPolicy: Local # 保留客户端源IP

七、最佳实践

命名规范:使用-格式(如order-service)

端口规划

Service端口使用标准端口(如80, 443)

targetPort使用应用实际监听端口

标签选择器:确保与Pod标签精确匹配

监控:监控Service的Endpoints变化和流量情况

八、常见问题排查

服务不可达

检查kubectl get endpoints是否有正常Pod

验证kube-proxy是否正常运行

检查网络插件(Calico/Flannel等)

DNS解析失败

验证CoreDNS Pod状态

检查/etc/resolv.conf配置

NodePort无法访问

检查节点防火墙规则

验证云提供商的安全组设置

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OxWFOPKOXB5AKWLXAF738F0A0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券