kubernetes - 如何从外部发现部署在 Kubernetes 上的服务?
问题描述
User Microservice
部署在 Kubernetes 上。
Order Microservice
没有部署在 kubernetes 上,而是在 Eureka 上注册。
我的问题:
怎么能通过尤里卡Order Microservice
发现和访问User Microservice
??
解决方案
首先让我们看一下问题本身:如果您使用覆盖网络作为 Kubernetes CNI,问题在于它创建了一个无法从外部访问的隔离网络(例如 Flannel)。如果您有这样的网络,那么一种解决方案是将 eureka 服务器移动到 kubernetes 中,以便 eureka 可以访问 Kubernetes 中的服务和 Kubernetes 之外的服务。
另一种解决方案是告诉 eureka 在哪里可以找到服务而不是自动发现,但为此,您还需要使用NodePort、HostPort 或 LoadBalancer 类型的服务或使用入口使服务在外部可用,我不确定它可能,但以下文档中的 11.2 可能值得一看Eureka Client Discovery。
第三种解决方案是使用不使用像Romana这样的覆盖网络的 CNI ,这将使服务默认可外部路由。
推荐阅读
- c - 此模块的调试信息中缺少源信息(免费功能)
- python - 使用带有递归的 Python 构建目录结构
- reactjs - React 应用程序在部署到 GCP 时出现 404 错误
- apache-kafka - Strimzi 操作员 Kafka 集群 ACL 未启用类型:简单
- javascript - 配置 express 以在生产中调用 proxy.conf.json 中的外部 API
- python - 彩票分析
- git - “$git push heroku master”使用了错误的帐户
- r - R:如何在R中按多个列+图表进行聚合和分组
- reactjs - 如何一个接一个地调度两个异步 redux 动作?
- angular - 如何使用 Cordova 将 Google Play 应用购买集成到 Angular 应用?