当前位置: 首页 > news >正文

k8S通过代理将集群外的中间件引入集群内访问 —— 筑梦之路

背景说明

有部分中间件是跑在Kubernetes集群之外,我们希望通过service的方式来访问集群外的中间件,比如访问我们k8s集群外的elasticsearch集群。

ES节点本身又处在一个负载均衡IP:192.168.100.100 之后,但是代理的端口号是9202,非es默认的9200。

工作原理

k8s通过endpoint指向一个负载均衡IP和port,再创建一个相同name的service就可以把流量导向到es集群了。

Endpoints 是手动定义的后端服务的地址和端口。我们这里会把Endpoints 指向192.168.100.100,并且监听在端口 9202。这个 IP 和端口是外部负载均衡器的地址,它负责将流量转发到实际的后端服务(例如 Pod 的 9200 端口)。

Service 是 Kubernetes 中用于暴露服务的抽象资源。Service 的 port 是 9200,它在 k8s 集群内暴露了一个虚拟端口 9200。targetPort 是 9202,这表示流量会通过 Service 的 9200 端口进入,然后被转发到 Endpoints 中定义的 9202 端口

yaml文件

apiVersion: v1
kind: Endpoints
metadata:
  name: es-svc
  namespace: es
subsets:
- addresses:
  - ip: 192.168.100.100
  ports:
  - port: 9202
    protocol: TCP
---
apiVersion: v1
kind: Service
  name: es-svc
  namespace: es
spec:
  ports:
  - port: 9200
    protocol: TCP
    targetPort: 9202
  sessionAffinity: None
  type: ClusterIP

流量路径 

  • 应用(例如集群内的其他 Pod)通过 es-svc.es.svc.cluster.local:9200 (或者 es-svc.es:9200)访问服务。

  • Service 接收到流量后,将流量转发到 Endpoints 中定义的 192.168.100.100:9202。

  • 负载均衡器接收到流量后,再将流量转发到实际的后端服务(例如 Pod 的 9200 端口)。

Service 的 port 和 targetPort 

  • port: 9200:这是集群内暴露的端口,客户端通过这个端口访问服务。

  • targetPort: 9202:这是流量被转发到的端口,对应于 Endpoints 中定义的负载均衡器的端口。

Endpoints 的 port

  • port: 9202:这是负载均衡器的端口,它负责将流量转发到实际的后端服务。

  • type: ClusterIP:这是一个普通的 ClusterIP 类型的 Service,它会分配一个虚拟 IP 地址,客户端可以通过这个虚拟 IP 和端口 9200 访问服务。

  • sessionAffinity: None:这表示不启用会话亲和性,流量会被随机分配到后端服务。我们可以根据需求保留或删除这个字段。

相关文章:

  • python数组下标怎么获取值并输出
  • B2B2C多语言电商系统代销逻辑设计和开发
  • deepseek使用记录12
  • Unity报错:InvalidOperationException: Insecure connection not allowed
  • Baklib云内容中台的核心架构是什么?
  • 【通俗讲解电子电路】——从零开始理解生活中的科技(一)
  • 小程序Three Dof识别 实现景区AR体验
  • 软件工程---需求工程
  • 基于Python的web漏洞挖掘,漏洞扫描系统(附源码,部署)
  • Linux入门(精简版)
  • ngx_conf_file_t
  • Allegro PCB元件库文件引起的问题-看不见器件,但是不能预览,也就不能放置了
  • 【SpringBoot】自动配置原理与自定义启动器
  • PyQT(PySide)的上下文菜单策略设置setContextMenuPolicy()
  • 【人工智能】java流式返回数据接口
  • C++-第十二章: AVL树
  • 入门基础项目(SpringBoot+Vue)
  • python-leetcode-第 N 个泰波那契数
  • Denoising Diffusion Implicit Models (DDIM)
  • Python PDF文件拆分-详解
  • 江门市网站建设 熊掌号/网站怎么弄
  • 官方网站的英文/百度竞价托管哪家好
  • 做内容网站好累/免费seo推广计划
  • 佳木斯 网站建设/谷歌海外推广
  • 做网站买计划书/百度认证怎么认证
  • 曹县做网站建设/描述建设一个网站的具体步骤