微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用molecularr和kubernetes建立基础设施疑问

如何解决使用molecularr和kubernetes建立基础设施疑问

我正在测试分子微服务框架以建立基础设施。我将使用打字稿 (https://github.com/moleculerjs/moleculer-template-project-typescript)。我的想法是根据文档是:

  • 使用 API Gateway 创建一个项目 => make doker => 使用 N 个副本进行 k8s 部署
  • 为每个微服务创建 1 个项目 => dockerize => 使用 N 个副本进行 k8s 部署
  • 为每个微服务创建 2 个项目 => dockerize => 使用 N 个副本进行 k8s 部署 ...
  • 为每个微服务创建 N 个项目 => dockerize => 使用 N 个副本进行 k8s 部署

我将使用 redis 作为传输器。我也想在开发中使用 redis

我有这个疑问,因为您可以在同一个项目中创建所有微服务,但是通过这种方式,您正在开发一个单体应用程序(并且仅在一个线程中)。我认为你需要在独立的(打字稿)项目中分离每个微服务,以便在部署阶段在 docker 镜像和 k8s 中的 make pods 之后进行。

解决方法

您可以将每个微服务分成单独的项目,但使用 Moleculer 您不需要它。您可以将所有服务整合到一个项目中。开发将简单快捷,并且在部署时您可以控制将加载哪些服务。这样你就可以生成一个docker镜像,并通过环境变量控制加载的服务。

例如在这里你可以看到 docker-compose.yml 中的 SERVICES env var: https://moleculer.services/docs/0.14/deploying.html#Docker-Compose

version: "3.2"

services:

  api:
    build:
      context: .
    image: moleculer-demo
    container_name: moleculer-demo-api
    env_file: docker-compose.env
    environment:
      SERVICES: api # Runner will start only the 'api' service in this container
      PORT: 3000    # Port of API gateway

  greeter:
    build:
      context: .
    image: moleculer-demo
    container_name: moleculer-demo-greeter
    env_file: docker-compose.env
    environment:
      SERVICES: greeter # Runner will start only the 'greeter' service in this container

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。