首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于同一个数据库的多个外部数据库的Istio ServiceEntry

用于同一个数据库的多个外部数据库的Istio ServiceEntry
EN

Stack Overflow用户
提问于 2019-11-20 16:20:14
回答 1查看 2.7K关注 0票数 2

我们的集群中有两个服务位于同一个名称空间中,每个服务都使用自己的数据库,如下所示:

我们为每个数据库添加了两个ServiceEntry:

代码语言:javascript
复制
---
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: service-1
  namespace: mynamespace
spec:
  exportTo:
    - "."
  hosts:
    - service1-db.xxx.com
  ports:
    - number: 5432
      name: tcp
      protocol: tcp
  resolution: DNS
  location: MESH_EXTERNAL
...

---
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: service-2
  namespace: mynamespace
spec:
  exportTo:
    - "."
  hosts:
    - service2-db.xxx.com
  ports:
    - number: 5432
      name: tcp
      protocol: tcp
  resolution: DNS
  location: MESH_EXTERNAL
...

结果的交互如下所示,这不是预期的:

我们遗漏了什么线索吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-26 14:29:37

因此,在最后,ServiceEntry不只是基于主机名工作,而是需要地址。

以下是行之有效的方法:

代码语言:javascript
复制
---
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: service-1
  namespace: mynamespace
spec:
  exportTo:
    - "."
  hosts:
    - service1-db.xxx.com
  addresses:
    - xx.xx.xx.xx/32
  ports:
    - number: 5432
      name: tcp
      protocol: tcp
  resolution: NONE
  location: MESH_EXTERNAL
...

---
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: service-2
  namespace: mynamespace
spec:
  exportTo:
    - "."
  hosts:
    - service2-db.xxx.com
  addresses:
    - xx.xx.xx.yy/32
  ports:
    - number: 5432
      name: tcp
      protocol: tcp
  resolution: NONE
  location: MESH_EXTERNAL
...

以下是文献资料的摘录,这些摘录使我们得出了这个结论。

如果地址字段为空,则将仅根据目标端口标识通信量。在这种情况下,mesh中的任何其他服务都不能共享正在访问服务的端口。 注意,当解析设置为DNS类型且未指定端点时,主机字段将用作要将通信量路由到的端点的DNS名称。

注意:虽然这帮助解决了这个特殊的实例,但它打开了另一个处理动态ip地址的问题,比如一些试图访问AWS机密管理器的应用程序。这些服务的ip地址不断变化,因此无法将其绑定到服务条目。因此,我们只为已知的外部通信量添加了服务条目,并允许其他信息未知。在Kiali (Istio的可视化器)中,这些“未知数”被显示为PassThroughClusters,这很烦人,但只有一半的问题。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58958939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档