【问题标题】:Deploy FastAPI microservice in Kubernetes via OpenFaaS通过 OpenFaaS 在 Kubernetes 中部署 FastAPI 微服务
【发布时间】:2021-11-05 14:40:25
【问题描述】:

我有一个由 FastAPI(带有许多路由器)构成的大型应用程序,它在 AWS Lambda 中运行。我想将它迁移到 Kubernetes 内的容器中。根据我的研究,OpenFaaS 是一个很好的解决方案。 但是我找不到有关如何执行此操作的文档。

有没有人有参考或更好的解决方案?

【问题讨论】:

    标签: python kubernetes aws-lambda fastapi openfaas


    【解决方案1】:

    如果你使用的是 python 或 Ruby

    您可以创建 docker 文件并将其用于创建 docker 映像,然后将其部署在 Kubernetes 上。

    FROM ruby:2.7-alpine3.11
    
    WORKDIR /home/app
    COPY    .   .
    
    RUN bundle install
    
    CMD ["ruby", "main.rb"]
    

    对于 OpenFass,他们为创建异步函数等的文档提供了良好的实验室。

    实验室:https://github.com/openfaas/workshop

    如果您正在寻找examples,您只能查看官方回购:https://github.com/openfaas/faas/tree/master/sample-functions

    额外

    还有另一个不错的选择KnativeKubeless

    您可以找到 python Kubeless 示例和 CI/CD 示例:https://github.com/harsh4870/kubeless-kubernetes-ci-cd

    【讨论】:

    • 感谢您的回答!但是,使用 Dockerfile 提出的解决方案对我来说似乎无法扩展。从建议的链接中,我没有看到 OpenFaaS 和 FastAPI 之间的关系。也许最好探索另一种解决方案。
    • 我们使用 ECS Fargate 部署了 FastAPI 应用程序,并使用 AWS CodePipeline 运行 CICD。缩放方面没有任何问题。
    【解决方案2】:

    尝试使用模板将上游 FastAPI 应用程序构建为 OpenFAAS 函数。这将创建一个 docker 镜像,您可以在 Kubernetes 集群中运行和部署。

    你可以在下面的github repo看到如何做到这一点

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-10
      • 2022-01-04
      • 1970-01-01
      • 1970-01-01
      • 2022-11-11
      • 2021-03-20
      • 2022-01-12
      相关资源
      最近更新 更多