首页 > 其他分享 >k8s~ingress_service_endpoint_pod四壮士

k8s~ingress_service_endpoint_pod四壮士

时间:2023-12-21 18:12:30浏览次数:29  
标签:ingress endpoint Service service 存储 +------------------+ IP地址 Pod Endpoints

在Kubernetes中,Service和Endpoints是两个重要的概念,它们之间存在着密切的关系。

  • Service:Service是Kubernetes中用于定义一组Pod的访问方式的抽象。通过创建Service,可以为一组具有相同标签的Pod提供统一的访问入口,使得客户端可以通过Service来访问这些Pod,而无需了解其具体的IP地址和端口号。Service通过标签选择器(selector)来选择匹配的Pod,并将请求转发到这些Pod上。

  • Endpoints:Endpoints是Kubernetes中的另一个资源对象,它存储了与一个Service相关联的实际后端Pod的列表和对应的网络终结点信息(即IP地址和端口号)。当Service被创建时,Kubernetes会自动管理Endpoints对象,将与Service标签选择器匹配的Pod的IP地址和端口号信息存储在Endpoints中。

因此,Service和Endpoints之间的关系可以总结为:Service定义了一组Pod的访问方式,而Endpoints则存储了这些Pod的实际网络终结点信息,Service通过Endpoints来实现对后端Pod的负载均衡和代理转发。

ingress,service,endpoints和pod三者关系

+------------------+       +------------------+       +------------------+       +------------------+
|     Ingress      |       |      Service     |       |     Endpoint     |       |       Pod        |
|                  |       |                  |       |                  |       |                  |
|   host:          |       |   selector:      |       |   IP: 10.0.0.1   |       |   Label:         |
|   example.com    |-------|   app: myapp     |-------|   Port: 80       |-------|   app: myapp     |
|   path: /api     |       |                  |       |   IP: 10.0.0.2   |       |                  |
|                  |       |                  |       |   Port: 80       |       |                  |
+------------------+       +------------------+       +------------------+       +------------------+

在这个示意图中,Ingress定义了对外部流量的访问规则,包括主机名(host)和路径(path)等。Ingress通过指向一个Service来实现流量的转发。Service根据自身的selector选择与之匹配的Pod,并将请求转发到这些Pod上。Endpoints存储了与Service相关联的后端Pod的IP地址和端口信息,而Pod则是应用程序运行的实际容器。

因此,Ingress定义了对外部流量的访问规则,Service提供了对后端Pod的访问入口,Endpoints存储了这些后端Pod的网络终结点信息,而Pod是应用程序实际运行的地方。

endpoint显示的ip是谁的?

Pod在Kubernetes中是有自己的IP地址的,这个IP地址通常由Kubernetes的网络插件(如Calico、Flannel等)负责分配和管理。每个Pod都会被分配一个独立的IP地址,用于在集群内部进行通信。

而Endpoints对象存储的是与Service关联的后端Pod的IP地址和端口信息,它记录了Service需要代理的实际后端Pod的网络终结点信息。Endpoints并不存储所有Pod的IP地址,而是仅存储与特定Service相关联的Pod的IP地址和端口信息。

因此,可以说Pod具有自己的IP地址,并且Endpoints对象存储了与Service相关的Pod的IP地址和端口信息。

  • 这是一个pod的信息
[root@elasticsearch02 ~]# kubectl describe  pod envoy-deployment-786c44794b-rb6wm -n=default
Name:         envoy-deployment-786c44794b-rb6wm
Namespace:    default
Priority:     0
Node:         192.168.60.136/192.168.60.136
Start Time:   Tue, 19 Dec 2023 09:54:24 +0800
Labels:       app=envoy
              pod-template-hash=786c44794b
              workloadID_ingress-10aa232e236bc59c6a7d7d59053154a8=true
              workloadID_ingress-c7fdea094d8b2ab0912781e0867ce277=true
Annotations:  cattle.io/timestamp: 2023-12-19T01:54:22Z
              cni.projectcalico.org/podIP: 10.42.0.150/32
              cni.projectcalico.org/podIPs: 10.42.0.150/32
              field.cattle.io/ports:

  • 这是对应的endpoint的信息
NAME                                       ENDPOINTS                                                                 AGE
envoy-service                              10.42.0.150:9901,10.42.0.150:10000                                        70d
  • 这是对应的service的信息
NAME                                       TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                          AGE
envoy-service                              NodePort    10.43.189.206   <none>        9901:25568/TCP,10000:13908/TCP   70d
  • 这是对应的ingress的信息
NAME                            CLASS    HOSTS                           ADDRESS                                        PORTS   AGE
envoy-final-keycloak            <none>   test.xxx.com             192.168.60.2,192.168.60.3,192.168.60.4                80      13d

好了,今天的k8s四壮士的文章就写到这里吧,感谢阅读!

标签:ingress,endpoint,Service,service,存储,+------------------+,IP地址,Pod,Endpoints
From: https://www.cnblogs.com/lori/p/17919788.html

相关文章

  • k8s Ingress使用详解(云原生kubernetes)
    k8s Ingress使用详解(云原生kubernetes)目录一、什么是Ingress二、Ingress工作机制三、Ingress核心概念四、Ingress工作原理五、Ingress使用搭建Ingress环境1、获取ingress-nginx2、创建ingress-nginx部署两组service创建tomcat-nginx.yaml配置Http访问代理如何通过外网......
  • 深入 K8s 网络原理(二)- Service iptables 模式分析
    目录1.概述2.准备Service和Pods资源3.K8s里Service的实现原理3.1kube-proxy组件3.2iptables简介3.3iptables规则3.3.1Service,Pod和Host信息3.3.2从NodePort入手寻找iptables规则3.3.3从PREROUTING和OUTPUT链寻找K8s相关子链3.3.4总结下4.总结1......
  • 使用 Amazon Fault Injection Service 演示多区域和多可用区应用程序弹性
    文章作者:JeffAmazonFaultInjectionService(FIS)可帮助您将混沌工程大规模付诸实践。今天,我们推出了新的场景,这些场景可以让您演示在亚马逊云科技可用区完全断电,或从一个亚马逊云科技区域到另一个亚马逊云科技区域的连接中断时,您的应用程序是否按预期运行。亚马逊云科技开发者社......
  • K8S - Ingress
    Ifweonlyhaveoneservice,wecaneasilyaddanArecordinthedomaininAWSRoute53. Butitwillbeapainwhenwehavealotmoreofthem,becausewewouldhavetocreatealotofArecordstoroutetraffixtoeachoftheservices. Abettersoluti......
  • 使用WinSW将jar创建成Windows服务;使用Microsoft.Extensions.Hosting.WindowsServices
    【背景】我们有几个历史产品,需要部署在Windows系统上,产品有jar包,也有.net工程,为了优美的启动服务,思考了两种处理方式。第一种是电脑开机启动,将启动命令设置为快捷键,并将快捷键拷贝到C:\ProgramData\Microsoft\Windows\StartMenu\Programs\Startup目录下,该方式有个缺点,由于ja......
  • Databend 源码阅读: Meta-service 数据结构
    作者:张炎泼(XP)DatabendLabs成员,Databend分布式研发负责人https://github.com/drmingdrmer引言Databend是一款开源的云原生数据库,采用Rust语言开发,专为云原生数据仓库的需求而设计。面向云架构:Databend是完全面向云架构的数据库,可以在云环境中灵活部署和扩展简介|......
  • Databend 源码阅读: Meta-service 数据结构
    作者:张炎泼(XP)DatabendLabs成员,Databend分布式研发负责人https://github.com/drmingdrmer引言Databend是一款开源的云原生数据库,采用Rust语言开发,专为云原生数据仓库的需求而设计。面向云架构:Databend是完全面向云架构的数据库,可以在云环境中灵活部署和扩展简介|......
  • 启动微服务报错:java.lang.IllegalStateException: Service id not legal hostname (se
    Order微服务通过opneFeign调用storage和account时报错原因分析:服务名称不能有下划线,可以使用中划线,Springcloud无法识别下划线,将下划线改为中划线即可注意:这个改了之后,你在进行远程调用的时候,接口对应的方法接口也需要相应改变【分布式开发,一个微服务模块修改了,很可能......
  • Docker启动Nacos报错:Nacos Server did not start because dumpservice bean construct
    一、表象重启服务器之后Docker运行Nacos容器,启动成功,但是外网无法访问。查看了一下Nacos启动日志(dockerlogsnacos容器名)二、分析很明显是数据库配``置问题。。如果是数据库配置的问题,可以着重检查以下信息尤其是MySQL内网Host,查询方式见Docker安装Nacos三、解决我已......
  • 【Azure App Service】当App Service中使用系统标识无法获取Access Token时
    问题描述AppSerive上的应用配置了系统标识(SystemIdentity),通过系统标识获取到访问KeyVault资源的AccessToken。但这次确遇见了无法获取到正常的AccessToken。 验证问题1:查看AppService的门户中是否启用了系统标识  2:进入AppService的Kudu站点,查看Environment参数中IDENT......