首页 > 其他分享 >service和endpoints是如何关联的?

service和endpoints是如何关联的?

时间:2024-09-08 08:51:30浏览次数:8  
标签:Endpoints service Service 关联 80 myapp Pod endpoints 选择器

在 Kubernetes 中,ServiceEndpoints 之间的关联通过标签选择器和动态更新机制实现。以下是它们之间的关系及一个具体的示例。

关联机制

  1. 标签选择器:当创建一个 Service 时,可以指定一个标签选择器,这个选择器用于匹配后端 Pod。符合选择器条件的 Pod 会被纳入到 Endpoints 中。

  2. 动态更新:当与 Service 关联的 Pod 状态发生变化时(例如,Pod 启动或终止),Kubernetes 会自动更新 Endpoints 对象,以反映当前可用的 Pod 列表。

示例

假设我们有一个简单的应用程序,其中有多个 Pod 运行一个 Web 服务,并且我们想要通过 Service 来访问这些 Pod。

步骤 1: 创建 Pod

首先,创建一个包含多个 Pod 的 Deployment:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: myapp
spec:
  replicas: 3
  selector:
    matchLabels:
      app: myapp
  template:
    metadata:
      labels:
        app: myapp
    spec:
      containers:
      - name: myapp-container
        image: myapp-image:latest
        ports:
        - containerPort: 80

在这个例子中,Deployment 会创建三个 Pod,每个 Pod 都有一个标签 app: myapp

步骤 2: 创建 Service

接下来,创建一个 Service 来暴露这些 Pod:

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

在这个 Service 中,标签选择器 app: myapp 指定了要选择的 Pod。

步骤 3: 查看 Endpoints

创建 Service 后,Kubernetes 会自动生成一个对应的 Endpoints 对象。你可以通过以下命令查看:

kubectl get endpoints myapp-service

输出可能会类似于:

NAME            ENDPOINTS                             AGE
myapp-service   10.244.1.2:80,10.244.1.3:80,10.244.1.4:80   5m

这表示 myapp-service 关联了三个 Pod,分别是 IP 地址 10.244.1.210.244.1.310.244.1.4,并且它们都在端口 80 上提供服务。

工作流程

  1. 客户端请求:当客户端访问 myapp-service 的 IP(如 10.96.0.1)时,Kubernetes 会将请求转发到其中一个 Endpoints(即 Pod)。

  2. 负载均衡:Kubernetes 会根据内部的负载均衡策略,将流量均匀分配到各个 Pod。

  3. 动态更新:如果其中一个 Pod 因为故障被删除,Kubernetes 会自动更新 Endpoints,移除该 Pod 的 IP 地址。

总结

通过上述示例,我们可以看到 ServiceEndpoints 如何通过标签选择器关联在一起,并通过动态更新机制确保服务的可用性和负载均衡。这样的设计使得应用程序的管理变得更加简便和高效。

标签:Endpoints,service,Service,关联,80,myapp,Pod,endpoints,选择器
From: https://www.cnblogs.com/love-DanDan/p/18402545

相关文章

  • 【Kubernetes知识点问答题】Service 发现
    目录 1.Kubernetes如何在集群的Pod之间提供网络服务?2.解释iptables和IPVS代理模式Service的区别。3.举例说明ClusterIP类型Service的用法。4.举例说明NodePort类型Service的用法。5.举例说明Headless类型Service的用法。6.详细说明Ingress......
  • 解决Android Studio不能下载Gradle的教程Could not install Gradle distribution from
    在使用AndroidStudio时,经常会碰到与Gradle相关的问题,其中一个较为常见的情况就是在加载Gradle的时候,无论是第一次下载Gradle还是导入Gradle,都可能会遭遇报错。尤其是在下载过程中,一旦遇到网络问题,就很容易导致下载超时而报错,给开发者带来极大的困扰。带来两个解决AndroidS......
  • 【实战案例】项目经理和产品经理高效配合的秘诀:产品与项目关联
    最近,不断收到关于项目经理岗位以及产品经理岗位相关的提问,比如:“产品经理和项目经理,有什么区别?”“产品经理和项目经理,哪个发展前景更好?”“产品经理和项目经理发生冲突,怎么平衡?”“......”关于产品经理与项目经理的区别以及发展前景,很多大佬都有分享过。那么本期内容主要聚......
  • java webservice 带请求头方式处理
    1、gradle引入依赖的增强第三方包implementation'org.apache.cxf:cxf-spring-boot-starter-jaxws:3.2.6'2、增强类方法packagewebservice;importcom.alibaba.fastjson.JSON;importcom.landray.kmss.sys.notify.webservice.Exception_Exception;importcom.landray.......
  • easyUI定区关联快递员js代码
    easyUI定区关联快递员js代码:<scripttype="text/javascript">$.fn.serializeJson=function(){varserializeObj={};vararray=this.serializeArray();varstr=this.serialize();......
  • 【运维自动化-配置平台】模型及模型关联最小化实践
    蓝鲸智云配置平台,以下简称配置平台我们知道主机是配置平台最常见的管控资源对象,在业务拓扑里可以通过划分模块来清晰的可视化管理;那其他资源如何通过配置平台来纳管呢,比如网络设备交换机。场景需求:如何把交换机和主机的关联关系在配置平台进行可视化的纳管一.不友好的方式通......
  • Android BLE & BluetoothGattCallback.onServicesDiscovered不回调或部分回调解决
    A.如题,调用BluetoothGatt.discoverServices()返回true了,但是一直没走到onServicesDiscovered回调中,用Ble调试蓝牙助手测试了,也是一样的情况,所以应该是外设的问题,但是ios的没问题,蓝牙处理还是有差别,网上有一种方式说是延迟去多discoverServices几次,可能可以找到,尝试了一下还是不行......
  • 【编码技巧】批量校验或处理关联引用数据的优化总结
    问题描述:      之前有信创项目反馈了一个批量导入的性能问题,400条数据需要3分钟,5000条需要20分钟以上,系统初始需要导入的各类数据有上百万。原因分析:      联系项目导入20~30条数据,并启用程序跟踪收集性能数据发现,有大量对字典表的SQL查询。      与功能......
  • 5G上行低SINR与上行干扰的关联性
    5G上行SINR大于等于0的采样点占比,定义为SINR≥0的采样点数量/SINR总采样点数*100%.当该数值小于一个拟定的门限值时,判定为该小区上行低SINR。上行干扰,定义为每个PRB的接收干扰噪声的平均值(dBm)>-107,可以是全部PRB上的干扰噪声高,也可以是部分PRB上的干扰噪声高导致所有PRB干扰噪......
  • ScheduledExecutorService 处理定时和周期性任务的强大工具
    转:https://zhuanlan.zhihu.com/p/6793399261简介ScheduledExecutorService是Java中处理定时和周期性任务的强大工具,它简化了线程管理,自动分配线程资源,避免了手动创建线程的繁琐,它提供了定时和周期性任务调度功能,能满足多数场景,此外,ScheduledExecutorService还支持任务取消......