docker - 将Kubernetes Pod限制为一个进程

标签 docker kubernetes microservices

我有一个带有docker镜像的Kubernetes集群。我有一些应用程序,每套应用程序都有一项服务。负载平衡和路径路由由Nginx Ingress完成。
现在,我有一个应用程序,其用途非常特定。我想将它的使用限制为一次只处理一个请求。该过程也可能长达半小时。如何在Kubernetes集群中执行此操作?如果kubernetes有这样的解决方案来跟踪pod中运行的进程并且不向该进程分配请求,那将是很好的。
也可以通过自动缩放来完成。如果我们可以删除未使用的Pod,并在收到请求时缩放应用程序。

最佳答案

这个问题并不是Kubernetes要解决的问题,而是您的应用程序设计-在这种情况下,这听起来像您对消息传递队列有很好的用例。无需将服务公开为REST API(我假设这就是您正在做的事情),而是可以为要放置的请求设置消息传递队列,并且服务可以在就绪时读取新请求,而无需按需读取。这样可以确保您的服务一次仅预订一个队列事件,而不会阻止将来的请求。

随时查看RabbitMQAWS SQS之类的解决方案。

关于docker - 将Kubernetes Pod限制为一个进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57599098/

相关文章:

docker - 在没有root用户访问权限的系统上构建Docker镜像

kubernetes - Kubectl 命令检查命名空间是否准备就绪

tomcat - Kubernetes 探针在 Tomcat 上失败

spring - 微服务同步通信——服务到服务或消息代理

google-cloud-platform - f1-micro 中的 GCLOUD Kubernetes 结果(由于内存不足,不支持 f1-micro 机器的节点池)

domain-driven-design - DDD 用户域特定设置

java - Docker - 在 HTTPS 上运行 Jetty

docker - Docker中未终止的带引号的字符串

php - Docker phpmyadmin忽略了我的php.ini配置

rethinkdb - kubernetes 中 rethinkdb 集群的高可用性问题