返回顶部
首页 > 资讯 > 精选 >不同k8s集群间服务怎么相互访问
  • 291
分享到

不同k8s集群间服务怎么相互访问

2023-07-06 03:07:36 291人浏览 薄情痞子
摘要

本文小编为大家详细介绍“不同k8s集群间服务怎么相互访问”,内容详细,步骤清晰,细节处理妥当,希望这篇“不同k8s集群间服务怎么相互访问”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1 | 春天来了一个需求1.1

本文小编为大家详细介绍“不同k8s集群间服务怎么相互访问”,内容详细,步骤清晰,细节处理妥当,希望这篇“不同k8s集群间服务怎么相互访问”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

    1 | 春天来了一个需求

    1.1 | 现状

    • 不同工程团队有各自的 k8s 开发集群, 负责的服务部署在各自的集群上

    • 但是这些服务之间存在调用关系(单项或者双向的)

    • 不同 k8s 集群之间内网是联通的

    • 其中一个集群要作为流量入口,面向用户

    不同k8s集群间服务怎么相互访问

    1.2 | 需求

    • 实现服务跨集群访问

    • 服务之间只能通过内网调用

    • 统一的外部流量接入控制

    2 | 方案有挺多的

    跨集群访问,应该是一个比较普遍的需求,市面上有很多各种各样的方案。比如:

    • 跨集群的注册发现服务 比如使用 Nacos 作为跨集群的注册发现中间件,所有在不同集群里的服务都注册到 nacos 上,由 nacos 来进行服务的注册发现以及负载均衡

    • 配置集群内网SLB 每一个集群各自配置一个自己的内网 SLB 地址,通过 ingress 的 path 配置不同的路由转发。

    • 使用ExternalName Service 在 请求发起方集群 配置 跨集群服务 在 本集群的 service,type 为 ExternalName 的headless service。

    方案优点缺点
    跨集群的注册发现服务无需额外运维要求要求所有服务使用同一套注册发现服务,限制比较强,且注册发现服务不一定满足不同技术栈的团队,比如 nacos 就没有官方支持的 Go sdk
    配置集群内网SLB对调用方友好,无需在调用方做额外运维配置,只需要正常业务代码内调用即可对集群运维要求较高,需要有一定的运维知识,且如果没有现成的 SLB 组件,还需要自建,成本较高
    使用ExternalName Service适用范围最广,使用最灵活,可以在任何阶段进行配置改造,对跨集群服务支持的调用方式兼容性好(支持 ClusterIP, nodePort 以及域名调用)对本方集群运维能力要求高

    以上三种方案,都可以实现跨集群的服务调用。然而,方案三却是目前最符合现状且能推进下去的。所以,下面就方案三展开来说。

    3 | 展开来讲讲

    方案三用到了 k8s 的 ExternalName Service(这里不展开讲这是什么,感兴趣可以点击查看)。主要讲怎么用。下面分几个场景来讲解:

    3.1 | 场景 1

    假设:k8s2 集群有个服务 s2, 对外以 Ingress 方式提供服务,访问地址是: abc.com 调用方集群创建一个 service :

    apiVersion: v1kind: Servicemetadata:  name: k8s2-s2  namespace: prodspec:  type: ExternalName  externalName: abc.com  ports:  - name: Http    port: 80    protocol: tcp    targetPort: 80

    那么, 在调用方集群内的服务,就可以通过本集群的服务名(k8s2-s2.prod.svc.cluster.local)去访问跨集群的服务。

    3.2 | 场景 2

    假设:k8s3 集群有个服务 s3, 对外以 NodePort 方式提供服务,访问地址是:192.168.0.199:30099 按照场景 1 的配置生成一个 service,可以用么?

    apiVersion: v1kind: Servicemetadata:  name: k8s3-s3  namespace: prodspec:  type: ExternalName  externalName: 192.168.0.199  ports:  - name: http    port: 80    protocol: TCP    targetPort: 30099

    可以用,但是有问题。在 Nginx日志里会疯狂打印一个错误:找不到 192.168.0.199 这个域名对应的 ip。原因是,在集群看来, externalName 字段是一个域名,是需要做 dns 解析成 ip 的。如果我们直接填一个 ip 的字段,虽然能用,但是会疯狂输出日志,冲掉正常 nginx 请求的日志。

    那既然这样,改成域名调用呗。那么问题来了,对方给我一个 ip,我上哪去变一个域名呢?修改 hosts,准确的说,修改 k8s coredns 服务的 hosts:

    # kubectl -n kube-system edit cm corednsapiVersion: v1data:  Corefile: |    .:53 {        ...        hosts {            192.168.0.199 s3.k8s3             fallthrough        }        ...    }kind: ConfigMapmetadata:  name: coredns  namespace: kube-system

    然后修改 service

    apiVersion: v1kind: Servicemetadata:  name: k8s3-s3  namespace: prodspec:  type: ExternalName  externalName: s3.k8s3  ports:  - name: http    port: 80    protocol: TCP    targetPort: 30099

    此时,在调用方集群内的服务,就可以通过本集群的服务名(k8s3-s3.prod.svc.cluster.local)去访问跨集群的服务。

    读到这里,这篇“不同k8s集群间服务怎么相互访问”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网精选频道。

    --结束END--

    本文标题: 不同k8s集群间服务怎么相互访问

    本文链接: https://lsjlt.com/news/357484.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    猜你喜欢
    • 不同k8s集群间服务怎么相互访问
      本文小编为大家详细介绍“不同k8s集群间服务怎么相互访问”,内容详细,步骤清晰,细节处理妥当,希望这篇“不同k8s集群间服务怎么相互访问”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1 | 春天来了一个需求1.1...
      99+
      2023-07-06
    • 不同k8s集群间服务如何相互访问实现详解
      目录1 | 春天来了一个需求1.1 | 现状1.2 | 需求2 | 方案有挺多的3 | 展开来讲讲3.1 | 场景 13.2 | 场景 24 | 说点非技术的1 | 春天来了一个需求...
      99+
      2023-05-15
      k8s 集群间服务相互访问 k8s不同服务相互访问
    • k8s集群怎么访问外部oracle
      要让Kubernetes集群访问外部的Oracle数据库,可以通过以下几个步骤进行设置:1. 创建一个Kubernetes Serv...
      99+
      2023-09-23
      oracle k8s
    • vue项目中data数据之间互相访问怎么实现
      这篇文章主要讲解了“vue项目中data数据之间互相访问怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue项目中data数据之间互相访问怎么实现”吧!如下代码: &nbs...
      99+
      2023-06-30
    • ubuntu22.04配置双网卡双静态ip不通网段访问服务器的相同服务
      ubuntu22.04配置双网卡双静态ip不通网段访问服务器的相同服务 技术博客 http://idea.coderyj.com/ 1.需求 南方电网网段(假如)是 192.168.3.1的网段...
      99+
      2023-09-29
      tcp/ip 服务器 网络协议
    • 不同云服务器之间怎么连接
      不同云服务器之间的连接需要考虑到数据库连接和网络连接的方式。以下是一些常用的云服务器连接和网络连接方式: 数据库连接(ODBC)连接 云服务器通常使用Oracle、MySQL、MongoDB等关系型数据库来连接到云端。这些数据库可以用...
      99+
      2023-10-26
      服务器
    • 腾讯云服务器无法访问互联网怎么办
      如果您的腾讯云服务器无法访问互联网,可能是由于以下原因之一: 网络设置错误:如果您的网络设置存在问题,例如错误的网络协议(TCP/IP)配置或连接超时等,可能会导致腾讯云服务器无法访问互联网。 DNS配置错误:如果您的域名服务器(DNS...
      99+
      2023-10-26
      互联网 腾讯 无法访问
    • 阿里云服务器无法访问互联网怎么办
      首先,检查网络连接是否正常可以使用以下步骤: 打开控制面板(快捷键:control+alt+del),选择网络和共享中心。 选择网络和共享中心的“更改适配器设置”。 选择“添加/删除WiFi连接”。 选择要添加的WiFi连接,点击“连接...
      99+
      2023-10-27
      互联网 阿里 无法访问
    • 云服务器ip访问不了怎么办
      云服务器ip访问不了的解决方法:登录云服务器提供商官网。打开云服务器管理页面,在实例列表中找到你所要修改的云服务器,点击“管理”。再选择“安全组”,默认创建服务器就配置了安全组的,选择你要配置的安全组,点击“配置规则”;选择访问的端口进行修...
      99+
      2024-04-02
    • centos中samba服务不能访问怎么办
      这篇文章主要为大家展示了“centos中samba服务不能访问怎么办”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“centos中samba服务不能访问怎么办”这篇文章吧。centos中samba...
      99+
      2023-06-10
    • 不同云服务器之间怎么连接的
      不同云服务器之间的连接需要考虑到数据库、中间件等不同的系统和软件,因此需要使用不同的API和协议进行连接。下面介绍一些常见的云服务器连接方式和技术: VLAN(虚拟网络)连接:这是一种通过虚拟网络创建虚拟连接的方式,将不同的云服务器连接...
      99+
      2023-10-27
      服务器
    • 手机访问云服务器怎么设置时间
      在访问网站时,我们通常需要等待服务器完成数据的加载和处理,以确保我们的访问体验流畅。但是,有时候用户会遇到服务器响应缓慢或无法响应的情况,这时我们就需要使用时间功能来控制网站的访问速度。 云服务器提供商可以提供一个时间戳来帮助用户控制网站...
      99+
      2023-10-28
      服务器 时间 手机
    • 腾讯云服务器无法访问互联网怎么解决
      如果您的云服务器无法访问互联网,可能有以下几个原因: 网络连接问题:首先请确保您的网络连接通畅,如果网络出现了拥塞,也会影响云服务器的访问。 云服务器配置问题:如果云服务器的配置出现问题,例如某些软件版本过期或者配置文件不正确,也会导致...
      99+
      2023-10-26
      互联网 腾讯 无法访问
    • 腾讯云服务器无法访问互联网怎么回事
      如果您的云服务器无法访问互联网,可能有以下几个原因: 网络连接问题:服务器可能无法连接到互联网或者连接速度较慢,可能需要等待一定时间才能连接成功。 防火墙问题:某些网站可能会使用防火墙来阻止云服务器访问互联网,这可能会导致云服务器不能正...
      99+
      2023-10-26
      互联网 腾讯 怎么回事
    • 阿里云服务器无法访问互联网怎么回事
      访问网站出现问题:当阿里云服务器出现问题时,用户无法访问网站。这种情况通常会出现在以下几种情况下:访问网站时出现了网络故障,比如网络中断或网络拥堵等;网站被攻击或被挂马等;网站服务器宕机等。 无法登录阿里云账户:当用户无法登录阿里云账户时...
      99+
      2023-10-27
      互联网 阿里 怎么回事
    • 阿里云服务器无法访问互联网怎么解决
      如果网络正常,可以尝试以下几个方法: 检查是否使用了代理服务器。如果使用了代理服务器,则可能导致服务器无法访问互联网。可以尝试手动连接服务器,或者使用其他的代理工具。 检查服务器的防火墙设置。如果防火墙设置不当,也会导致服务器无法访问互...
      99+
      2023-10-27
      互联网 阿里 无法访问
    • 国外服务器访问不稳定怎么办
      国外服务器访问不稳定怎么办?如今,随着互联网的发展,越来越多的人开始使用国外服务器来满足各种需求,例如网站托管、数据存储、游戏和应用程序的开发等。然而,有时候我们可能会遇到国外服务器访问不稳定的问题,这将严重影响我们的工作效率和用户体验。...
      99+
      2024-01-24
      国外云服务器 国外服务器 国外服务器访问不稳定怎么办 云服务器知识
    • 不同云服务器之间怎么连接手机
      不同云服务器之间的连接通常通过专用的云连接API或者云服务器管理器来实现。以下是一些可以用来连接云服务器的常用API: GCP连接API:GCP 是OpenAI的云服务器连接API,它将云服务器与OpenAI云服务器连接,可以使用它来连...
      99+
      2023-10-27
      服务器 手机
    • 不同云服务器之间怎么连接网络
      不同云服务器之间的连接可以通过多种方法实现,以下是一些常见的方法: 通过API或SDK接口连接:如果使用的是云服务器平台的API或SDK接口,可以通过调用API或SDK接口来连接其他云服务器。具体的方法可以根据云服务器平台的使用说明进行...
      99+
      2023-10-27
      服务器 网络
    • 腾讯云服务器无法访问互联网怎么回事儿
      1. 检查网络连接 首先,您需要检查您的服务器是否连接到互联网。您可以通过 ping 命令测试服务器是否能够访问互联网。在命令行中输入以下命令: ping www.baidu.com 如果您能够收到来自百度的响应,那么您的服务器已经连...
      99+
      2023-10-27
      互联网 腾讯 回事儿
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作