k8s~ingress_service_endpoint_pod四壮士
在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四壮士的文章就写到这里吧,感谢阅读!
k8s~ingress_service_endpoint_pod四壮士的更多相关文章
- Apache Flink on K8s:四种运行模式,我该选择哪种?
1. 前言 Apache Flink 是一个分布式流处理引擎,它提供了丰富且易用的API来处理有状态的流处理应用,并且在支持容错的前提下,高效.大规模的运行此类应用.通过支持事件时间(event-ti ...
- Kubernetes(k8s)控制器(四):ReplicaSet
目录 一.系统环境 二.前言 三.ReplicaSet概览 四.ReplicaSet工作原理 五.ReplicaSet使用场景 六.创建ReplicaSet 七.扩展replicaset副本数 一.系 ...
- K8s 系列(四) - 浅谈 Informer
1. 概述 进入 K8s 的世界,会发现有很多的 Controller,它们都是为了完成某类资源(如 pod 是通过 DeploymentController, ReplicaSetControlle ...
- 学习k8s(四)
1.K8S核心组件 1.Master节点: etcd: 分布式键值对数据库,保存集群状态 api-server: 接受并响应用户的请求 controller: 控制器管理,控制容器的副本数,故障检测 ...
- Kubernetes【K8S】(四):资源控制器
什么是控制器 Kubernetes中内建了很多controller(控制器),这些相当于一个状态机,用来控制Pod的具体状态和行为. 控制器类型 ReplicationController和Rep ...
- ASP.NET Core on K8S深入学习(11)K8S网络知多少
本篇已加入<.NET Core on K8S学习实践系列文章索引>,可以点击查看更多容器化技术相关系列文章. 一.Kubernetes网络模型 我们都知道Kubernetes作为容器编排引 ...
- Kubernetes【K8S】(五):Service
Service概念 Kubernetes Service定义了一个Pod的逻辑分组,一种可以访问它们的策略.这组Pod能被Service访问到,通常是通过label Selector. Service ...
- 这一篇 K8S(Kubernetes)集群部署 我觉得还可以!!!
点赞再看,养成习惯,微信搜索[牧小农]关注我获取更多资讯,风里雨里,小农等你,很高兴能够成为你的朋友. 国内安装K8S的四种途径 Kubernetes 的安装其实并不复杂,因为Kubernetes 属 ...
- 附006.Kubernetes RBAC授权
一 RBAC 1.1 RBAC授权 基于角色的访问控制(RBAC)是一种基于个人用户的角色来管理对计算机或网络资源的访问的方法. RBAC使用rbac.authorization.k8s.io API ...
- 【转帖】技术选型之Docker容器引擎
技术选型之Docker容器引擎 https://segmentfault.com/a/1190000019462392 图过不来的 原作者写的挺好的 题外话 最近对Docker和Kubernetes进 ...
随机推荐
- Python API接口对接详解与实践
在数字化时代,数据交互已经成为各种应用的必备功能.API(应用程序编程接口)就是实现不同应用程序之间数据交互的一种方式.Python作为一种功能强大的编程语言,也提供了许多用于对接API的库和框架 ...
- DesignPattern-part1
title: "modern C++ DesignPattern-Part1" date: 2018-04-03T16:06:33+08:00 lastmod: 2018-04-0 ...
- KRPANO资源分析工具模板链接下载
KRPano资源分析工具1.4.0加入了模板链接下载,可以批量下载有规律的链接. 模板链接基本规则 数字递增链接 pic[1-100]:会生成pic1,pic2,-pic100的链接 pic[a-z] ...
- Blazor前后端框架Known-V1.2.15
V1.2.15 更新日期 2023-09-17 更新内容 修复角色不启用相关问题 RadioList组件支持平原(Plain)模式 CheckList组件支持平原(Plain)模式 DataGrid组 ...
- 「atcoder - agc054c」Roughly Sorted
link. 高妙题,我只会到构造下界那一步-- 构造下界比较容易,只需要注意到交换一次最多让序列向合法迫近一步即可.则答案下界为 \(\sum_i \max\{\left(\sum_{j < i ...
- 「codeforces - 1633F」Perfect Matching
link. 首先所有的 activated nodes 组合成了一棵以 \(1\) 为根的有根树.询问即求由 activated nodes 组成的树的最大匹配.对于树上最大匹配有一个贪心策略:自底向 ...
- Ds100p -「数据结构百题」51~60
纪念 数据结构一百题50题了呢,该过半周年啦~~~~ LYC和WGY半年的努力让这个几乎玩笑一般的系列到了现在. 今后也请多多关照啦. 祝愿dp100p早日过半 51.CF1000F One Occu ...
- Teamcenter RAC 开发之《PlaceHolder》
背景 做个swing表单,有时候想实现一些网页input标签的placeHolder提示,可能本人写vue or html写多,对某些细节有强迫症,所以找小下资料 实现方法(Swingx) 看源码
- IP协议的发展历程
1. IP协议 1.1为什么需要IP协议 好像ip地址就像每个人的家门号一样家喻户晓,被大家默认用来作为寻址的门牌号,起初,设计IP地址也是为了寻找某台主机,但是作为世界上家喻户晓的IPv4,大家不应 ...
- Strimzi Kafka Bridge(桥接)实战之三:自制sdk(golang版本)
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是<Strimzi Kafka B ...