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进 ...
随机推荐
- 图解Spark Graphx实现顶点关联邻接顶点的函数原理
一.场景案例 在一张社区网络里,可能需要查询出各个顶点邻接关联的顶点集合,类似查询某个人关系比较近的都有哪些人的场景. 在用Spark graphx中,通过函数collectNeighbors便可以获 ...
- Elasticsearch之常用术语
一. 数据库和ES简单类比 关系型数据库 表(Table) 行(Row) 列(Cloumn) Schema SQL Elasticsearch 索引(Index) 文档(Document) 字段(Fi ...
- Hutool,一个超好用的 Java 工具类库
一.简介 Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以"甜甜的". ...
- Linux部署项目常用命令(持续更新)
防火墙配置 # 启动防火墙服务 systemctl start firewalld # 关闭防火墙服务 systemctl stop firewalld # 查看防火墙服务状态 systemctl s ...
- 洛谷题解 | AT_abc321_c Primes on Interval
目录 题目翻译 题目描述 输入格式 输出格式 样例 #1 样例输入 #1 样例输出 #1 样例 #2 样例输入 #2 样例输出 #2 样例 #3 样例输入 #3 样例输出 #3 题目简化 题目思路 A ...
- Go泛型解密:从基础到实战的全方位解析
本篇文章深入探讨了Go语言的泛型特性,从其基础概念到高级用法,并通过实战示例展示了其在实际项目中的应用. 关注[TechLeadCloud],分享互联网架构.云服务技术的全维度知识.作者拥有10+年互 ...
- 如何在虚拟机上安装linux操纵系统
1.下载linux操作系统的镜像文件(iso文件),官网链接(CentOS Mirrors List) (3)下载大小为4G 或者4.几G的iso镜像文件 2.下载我发的VMware Workstat ...
- Intervals 题解
Intervals 题目大意 给定 \(m\) 条形如 \((l_i,r_i,a_i)\) 的规则,你需要求出一个长为 \(n\) 的分数最大的 01 串的分数,其中一个 01 串 \(A\) 的分数 ...
- meet
以后就放弃csdn了,就来这里记录自己的成长,就当成一个树洞吧,开心与难过,学习与生活,进步与成长,留下时间的痕迹!冲!冲!冲!
- vue3源码学习api-createApp-amount
vue3 地址 https://github.com/vuejs/core 首先看看vue文档什么是 Vue? Vue (发音为 /vjuː/,类似 view) 是一款用于构建用户界面的 Java ...