首页 > 解决方案 > 我应该在 GKE 引擎上部署 api-gateway 吗?

问题描述

我正在做一个演示项目,它有 5 个微服务——发现服务器、api-gateway、user-order-detail、order 和 user service。

我会在内部公开订单和用户服务

我将在外部公开用户订单详细信息服务,该服务将使用休息端点调用其他两个服务。

1) 我应该在 Kubernetes 引擎上部署发现服务器和 api 网关吗?如果不应该如何处理路由?

如果我不部署 api-gateway ,这个休息电话将如何发生?

在此处输入图像描述

2)此外,每个 spring-cloud 项目中都有一个 application.properties 文件。docker 镜像是否替换了 application.properties 文件?

3) 我是第一次使用 docker 和 kubernetes。有人能解释一下在为我的服务创建 docker 映像后我的下一步应该是什么吗?(只是步骤,我会弄清楚如何完成这些步骤)

更新:

已启动的服务:

user-order-detail LoadBalancer
kubernetes ClusterIP
order-management LoadBalancer
user-management LoadBalancer

user-order-detail 命中端点以检索所有用户。 我收到此错误:虚拟主机名没有匹配项:用户管理

标签: javadockerkubernetesspring-cloud

解决方案


请在下面找到答案:-

1) 是的,您可以在 kubernetes 引擎上部署发现服务和 api-gateway,关于您将公开哪种类型的服务,请阅读本文档。

服务:- https://kubernetes.io/docs/concepts/services-networking/service/

2) 您可以在构建映像时复制 application.properties 文件,或者如果您想在运行时覆盖。请在 Kubernetes 中创建一个 configMap 并按卷注入 Kubernetes pod。请按照 ConfigMap 上的以下链接进行操作。

https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/#add-configmap-data-to-a-volume

https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/#add-configmap-data-to-a-volume

3)创建图像后要做的步骤:-

  1. 将图像推送到注册表
  2. 在 kubernetes 上部署 pod
  3. 创建一个服务来暴露 pod

推荐阅读