我需要一个建议,因为我现在没有功能正常的kube集群。 我们正在构建一套将在本地Kubernetes集群上运行的微服务。所有这些微服务都必须访问外部Oracle数据库和一个Kafka实例(对此clusetr)。这两个服务(DB和Kafka)将位于同一网络中,但不在Kubernetes集群中。这是客户的要求,我们无能为力。
从不同的帖子中我能理解的是:
1.创建一个类型为ExternalName的服务Yaml,然后必须提供相应的名称(CNAME)。
我的问题是,我可以在这里使用IP代替CNAME吗?由于数据库位于同一网络中,但对我来说似乎很明显。
还是我必须添加其他配置?
我可以搜索开发人员众多的帖子,这些帖子无法正确配置。因此,对确切步骤毫无疑问。
谢谢。
答案 0 :(得分:0)
做到这一点的最佳方法是使用一个端点,在该端点上创建一个对象,该对象为群集内的一个名称指向外部IP地址。
https://kubernetes.io/docs/concepts/services-networking/service/#services-without-selectors
apiVersion: v1
kind: Endpoints
metadata:
name: my-service
subsets:
- addresses:
- ip: 192.0.2.42
ports:
- port: 9376
话虽如此,剩下的唯一一点就是要确保国际集群网络范围不会与外部网络冲突,因为例如,如果您的集群上有10.0.0.0/8
范围的Pod和您在外部网络上也使用了该范围的子网,例如10.0.1.0/16
,广告连播永远都不会到达外部服务。