k8s集群利用svc,ep代理另一个集群的svc服务,让集群正常调用

news2025/1/11 9:06:30

前提:两套集群的网络互通
背景:客户给两套集群,不通网络环境,但是两套集群中服务需要有调用故用此方法
A集群(未部署服务a,但是部署了服务b,c,d)
B集群 (只部署了服务a)
1,a集群利用svc代理b集群的a和a1服务
如以下yaml(ep中写对应b集群的物理机地址和端口,svc中写你想起什么端口就写什么端口)

idaas-nginx-svc.yaml

apiVersion: v1
kind: Service
metadata:
  name: idaas-nginx
  namespace: common
spec:
  clusterIP: 10.233.31.230
  clusterIPs:
  - 10.233.31.230
  ports:
  - name: nginx
    port: 8676   #idaas-nginx的svc端口,可以自定义
    protocol: TCP
    targetPort: nginx
  sessionAffinity: None
  type: ClusterIP
status:
  loadBalancer: {}


idaas-nginx-ep.yaml

apiVersion: v1
kind: Endpoints
metadata:
  name: idaas-nginx
  namespace: common
subsets:
- addresses:
  - ip: 172.16.0.2  #idaas集群的物理机地址
  ports:
  - name: nginx
    port: 28082   #idaas集群的idaas-nginx的nodeport端口
    protocol: TCP

直接apply即可
在这里插入图片描述

利用已有的svc创建新的svc

kubectl get svc -n xxx xxx -oyaml >> svc-bak.yaml

旧的svc

apiVersion: v1
kind: Service
metadata:
  creationTimestamp: "2024-04-24T08:38:46Z"
  labels:
    app.kubernetes.io/component: rabbitmq
    app.kubernetes.io/name: rabbitmq
    app.kubernetes.io/part-of: rabbitmq
  managedFields:
  - apiVersion: v1
    fieldsType: FieldsV1
    fieldsV1:
      f:spec:
        f:externalTrafficPolicy: {}
    manager: kubectl-edit
    operation: Update
    time: "2024-05-13T06:29:57Z"
  - apiVersion: v1
    fieldsType: FieldsV1
    fieldsV1:
      f:metadata:
        f:labels:
          .: {}
          f:app.kubernetes.io/component: {}
          f:app.kubernetes.io/name: {}
          f:app.kubernetes.io/part-of: {}
        f:ownerReferences:
          .: {}
          k:{"uid":"8c6deebb-d6ec-4fce-8810-f04c08746a58"}:
            .: {}
            f:apiVersion: {}
            f:blockOwnerDeletion: {}
            f:controller: {}
            f:kind: {}
            f:name: {}
            f:uid: {}
      f:spec:
        f:ports:
          .: {}
          k:{"port":5552,"protocol":"TCP"}:
            .: {}
            f:appProtocol: {}
            f:name: {}
            f:port: {}
            f:protocol: {}
            f:targetPort: {}
          k:{"port":5672,"protocol":"TCP"}:
            .: {}
            f:appProtocol: {}
            f:name: {}
            f:port: {}
            f:protocol: {}
            f:targetPort: {}
          k:{"port":8552,"protocol":"TCP"}:
            .: {}
            f:name: {}
            f:port: {}
            f:protocol: {}
            f:targetPort: {}
          k:{"port":8672,"protocol":"TCP"}:
            .: {}
            f:name: {}
            f:port: {}
            f:protocol: {}
            f:targetPort: {}
          k:{"port":15672,"protocol":"TCP"}:
            .: {}
            f:appProtocol: {}
            f:name: {}
            f:port: {}
            f:protocol: {}
            f:targetPort: {}
          k:{"port":15692,"protocol":"TCP"}:
            .: {}
            f:appProtocol: {}
            f:name: {}
            f:port: {}
            f:protocol: {}
            f:targetPort: {}
        f:selector:
          .: {}
          f:app.kubernetes.io/name: {}
        f:sessionAffinity: {}
        f:type: {}
    manager: manager
    operation: Update
    time: "2024-05-13T06:29:57Z"
  name: rabbitmq
  namespace: rabbitmq-system
  ownerReferences:
  - apiVersion: rabbitmq.com/v1beta1
    blockOwnerDeletion: true
    controller: true
    kind: RabbitmqCluster
    name: rabbitmq
    uid: 8c6deebb-d6ec-4fce-8810-f04c08746a58
  resourceVersion: "6871272"
  uid: 5b6416e9-fc46-43ac-9315-d9bb58f79082
spec:
  clusterIP: 10.233.21.224
  clusterIPs:
  - 10.233.21.224
  ports:
  - name: other-port
    port: 8672
    protocol: TCP
    targetPort: 8672
  - name: stream-port
    port: 8552
    protocol: TCP
    targetPort: 8552
  - appProtocol: amqp
    name: amqp
    port: 5672
    protocol: TCP
    targetPort: 5672
  - appProtocol: http
    name: management
    port: 15672
    protocol: TCP
    targetPort: 15672
  - appProtocol: rabbitmq.com/stream
    name: stream
    port: 5552
    protocol: TCP
    targetPort: 5552
  - appProtocol: prometheus.io/metrics
    name: prometheus
    port: 15692
    protocol: TCP
    targetPort: 15692
  selector:
    app.kubernetes.io/name: rabbitmq
  sessionAffinity: None
  type: ClusterIP
status:
  loadBalancer: {}

新的svc,基于旧的去修改即可
apiVersion: v1
kind: Service
metadata:
  labels:
    app.kubernetes.io/component: rabbitmq
    app.kubernetes.io/name: rabbitmq
    app.kubernetes.io/part-of: rabbitmq
  name: rabbitmq-new
  namespace: rabbitmq-system
spec:
  clusterIP: 
  ports:
  - name: other-port
    port: 8672
    protocol: TCP
    targetPort: 8672
  - name: stream-port
    port: 8552
    protocol: TCP
    targetPort: 8552
  - appProtocol: amqp
    name: amqp
    port: 5672
    protocol: TCP
    targetPort: 5672
  - appProtocol: http
    name: management
    port: 15672
    protocol: TCP
    targetPort: 15672
  - appProtocol: rabbitmq.com/stream
    name: stream
    port: 5552
    protocol: TCP
    targetPort: 5552
  - appProtocol: prometheus.io/metrics
    name: prometheus
    port: 15692
    protocol: TCP
    targetPort: 15692
  selector:
    app.kubernetes.io/name: rabbitmq
  sessionAffinity: None
  type: NodePort
status:
  loadBalancer: {}

修改完后直接kubectl apply -f xxx.yaml即可

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1921368.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

216.Mit6.S081-实验四-Traps

本实验探索如何使用陷阱实现系统调用。您将首先使用栈做一个热身练习,然后实现一个用户级陷阱处理的示例。 开始编码之前,请阅读xv6手册的第4章和相关源文件: kernel/trampoline.S:涉及从用户空间到内核空间再到内核空间的转换的…

检索 Postgres 不同版本功能差异的神器

官方 官方提供了 Feature Matrix https://www.postgresql.org/about/featurematrix pgPedia https://pgpedia.info/ 提供了更加丰富的内容 带搜索功能 不同版本下的 SQL 命令支持 系统表的支持 总结 横向对比其他数据库,官方的版本功能比对已经做的很不错了。pgP…

配置Redis时yml的格式导致报错

报错如下 java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:98) at org.springframework.test.context.su…

这几个伦敦金交易常识性的知识 一定要知道

常识是指在伦敦金交易中,获得大部分投资者一致公认的有用的的一些投资知识,掌握这些知识,对我们做伦敦金交易是很重要的。下面我们就来讨论三个伦敦金交易的常识。 支撑阻力位。在伦敦金交易中支撑阻力位的重要性不言而喻。这里需要说明的是&…

YOLOv10: Real-Time End-to-End Object Detection

双重标签分配 与一对一多分配不同,一对一匹配只为每个地面真相分配一个预测,避免了NMS后处理。然而,这导致了较弱的监督,导致次优的准确性和收敛速度。幸运的是,这种缺陷可以通过一对一多分配来弥补。为此&#xff0c…

一起来学习孟德尔随机化临床医学SCI发表吧!!!

如今,临床科研工作者面对越来越重的科研压力,以及越来越高的 SCI 文章要求,如何才能在不 进实验室、不做基础科研的前提下,利用好各种公共数据资源快速发表 SCI 论著?这是一个困绕每一 个临床科研医生的话题。真正的随…

Docker 使用基础(4)—存储卷

🎬慕斯主页:修仙—别有洞天 ♈️今日夜电波:秒針を噛む—ずっと真夜中でいいのに。 0:34━━━━━━️💟──────── 4:20 🔄 ◀️ ⏸ …

【JavaScript 算法】广度优先搜索:层层推进的搜索策略

🔥 个人主页:空白诗 文章目录 一、算法原理二、算法实现三、应用场景四、优化与扩展五、总结 广度优先搜索(Breadth-First Search, BFS)是一种用于遍历或搜索图或树数据结构的算法。该算法从起始节点开始,逐层向外扩展…

delete删除new[]创建的数组会发生什么

这是国泰君安技术面出的题 先说结论 如果是删除原始的数据类型,并不会发生什么,也不会产生内存泄露。如果是删除自定义类型,比如说类和结构体,则只能删除第一个,后面的可能会内存泄露。 一、删除原始数据类型 举个…

LeetCode 141.环形链表 C写法

LeetCode 141.环形链表 C写法 思路🧐: ​ 利用快慢指针,快指针走两步,慢指针走一步,如果没有环,快指针走完就返回false,如果有环,那么快指针一定先进环,等慢指针进环以后…

闯荡西游之路,续写经典传奇,大话西游图文架设教程

前言 这次给大家带来的是我精心准备了很久的,也是大家呼声很高的大话西游,云集西游版本,安卓苹果双端,非变态版本,包含天梯、星阵、八卦等玩法,游戏内置GM后台,快来体验一下吧~ 本文讲解大话西…

公司网站搭建源码系统 带网站的源代码包以及搭建部署教程

系统概述 随着互联网的飞速发展,网站已成为企业对外展示、交流和服务的重要窗口。然而,对于非技术背景的企业而言,自行开发网站往往面临技术门槛高、成本高、周期长等难题。因此,我们推出了这款集成了先进技术和丰富功能的网站搭…

一文详解DDL同步及其应用场景

目录 一、什么是DDL? 二、什么是DDL同步? 三、DDL同步的痛点 1、缺少自动DDL同步机制 2、缺少DDL变更监测预警 四、解决方案 五、应用场景及案例 案例一 案例二 案例三 在现代数据管理中,数据库的结构变更频繁且不可避免,特别是在…

风光摄影:相机设置和镜头选择

写在前面 博文内容为《斯科特凯尔比的风光摄影手册》读书笔记整理涉及在风景拍摄中一些相机设置,镜头选择的建议对小白来讲很实用,避免拍摄一些过曝或者过暗的风景照片理解不足小伙伴帮忙指正 😃,生活加油 99%的焦虑都来自于虚度时间和没有好…

秋招在线测评,性格和岗位是如何匹配的?

又是一年的秋招季,应届毕业生都会面临一个问题,如何将性格和岗位相互匹配,以找到最合适的自己的岗位呢? 事实上绝大部分人并没有找准最适合的岗位..... 对于应届毕业生来说,通常都是想着先拿下offer,至于是…

frameworks 之Zygote

frameworks 之Zygote Zygote.rc 解析Zygote 启动ZygoteInit.javaZygote.cppLiunx fork Zygote 中文意思为受精卵。 和其意思一样,该功能负责android系统孵化service 和 app 进程。 本文讲解Zygote的大概流程。涉及的相同的类,如下所示 system/core/rootd…

centos9+mysql8.0下mycat1.6部署

#创作灵感# 整理一下mysql代理技术,这个当时是和mysql集群部署一个项目的,一并整理出来供参考。 1、环境准备 此处使用的为M-M-SS双主双从结构集群,集群部署方法放在我的上一篇文章中 防火墙可以使用firewall-cmd放行,演示环境…

Nature Communications|柔性高密度、高灵敏应变传感器阵列(柔性应变传感/界面调控/电子皮肤/柔性电子)

复旦大学武利民( Limin Wu)和李卓( Zhuo Li)团队,在《Nature Communications》上发布了一篇题为“High-density, highly sensitive sensor array of spiky carbon nanospheres for strain field mapping”的论文。论文内容如下: 一、 摘要 在工程应用中,准确地映射应变…

SQL 删除emp_no重复的记录,只保留最小的id对应的记录。

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 描述 删除emp_no重…

CDGA|数据治理:标准化处理与确保数据可溯源性

在当今信息爆炸的时代,数据已成为企业决策、科学研究和政府管理的核心要素。然而,随着数据量的不断增加和来源的多样化,数据治理成为了一个亟待解决的问题。特别是在处理复杂数据时,标准化处理和确保数据的可溯源性显得尤为重要。…