美文网首页
阿里云使用自定义域名跨集群调用服务

阿里云使用自定义域名跨集群调用服务

作者: Yellowtail | 来源:发表于2019-06-12 22:21 被阅读0次

    背景

    我们公司在 阿里云上 有两个集群
    一个是 swarm 的,一个是 k8s 的,在同一个 vpc 下面
    我们现在想在 swarm集群里的服务A,调用 k8s 集群里的一个服务B
    已知,阿里云的 k8s 集群提供ingress 域名,是一个公网域名
    我们的服务A在频繁调用服务B时,会出现网络波动和时延高的问题
    所以想找到一种方法,让这个请求尽量限定在vpc内网,来减少上面说的问题
    经过提工单,找到了可行的方案,现在分享一下

    新建内网slb

    阿里云 k8s 集群提供ingress 域名默认是绑定在公网 slb上,所以请求会从外网绕一圈
    现在,新建一个内网slb, 后续的步骤要用
    新建完成之后,得到
    内网ip 172.18.0.212
    id xxx

    安装 jinja2

    后面会用到这个工具, github

    pip install jinja2-cli
    pip install jinja2-cli[yaml]
    

    在k8s里新建一套 Ingress Controller

    指导文档

    在这篇文章里会用到 slbid

    k8s ingress 自定义域名

    按照上面的文档,给 service 指定一个域名 sms.dev.backend.com
    如图所示

    image.png

    这个域名只能通过 curl 的方式访问,那么在我们的代码里该怎么写呢?

    新建 privateZone

    地址

    这个privateZone 就是一个内网DNS服务
    专门用来进行 内网域名解析

    验证

    swarm 集群 curl 自定义的域名,有返回值便表明一切配置OK

    [root@cf6d9e5767eb94c7e857cd35600149344-node1 ~]# curl sms.dev.backend.com
    {"timestamp":"2019-06-13T03:32:38.971+0000","status":404,"error":"Not Found","message":"No message available","path":"/"}
    
    [root@cf6d9e5767eb94c7e857cd35600149344-node1 ~]#
    

    返回信息是典型的 spring boot 信息

    相关文章

      网友评论

          本文标题:阿里云使用自定义域名跨集群调用服务

          本文链接:https://www.haomeiwen.com/subject/redrfctx.html