在 Kubernetes 中自动生成 Pods

Automatically Generate Pods in Kubernetes

我之前使用 Docker Python SDK 创建了一个生成 Docker 个容器的 Flask 服务器。当客户端访问特定端点时,服务器将生成一个容器。它会维护队列,并且能够杀死没有响应请求的容器。

我想迁移到 Kubernetes,但我开始认为我当前的服务器无法像 docker 那样自动 "spawn" 工作 pods。

docker.from_env().containers.run('alpine', 'echo hello world')  

Docker Swarm 是更好的解决方案,还是在 Kubernetes 中有隐藏的实践? Kubernetes Python API 是否会成为自动生成 pods 和作业的逻辑解决方案,其中 Flask 服务器是管理集群中其他 pods 的 pod?

'Kubectl run' 与 'docker run' 非常相似,因为它将基于 docker 图像创建一个带有容器的 Pod(例如 How do i run curl command from within a Kubernetes pod). See https://kubernetes.io/docs/reference/kubectl/docker-cli-to-kubectl/ 以进行更多比较。但是什么你 运行 和 k8s 是 Pods/Jobs 包含容器而不是直接 运行ning 容器,所以这会给你增加一层额外的复杂性。

Kubernetes 更多的是关于编排服务而不是 运行宁短命的工作。它有一些功能,可用于 运行 工作,但这不是它的重点。如果您朝那个方向前进,您可能想看看 knative(和 knative build)或 kubeless,因为您描述的内容听起来更像是无服务器概念。或者,如果您更多地考虑乔布斯,那么可能是大队 (https://brigade.sh). (For more see https://www.quora.com/Is-Kubernetes-suited-for-long-running-batch-jobs) 如果您正在寻找 运行 为请求提供服务的网络应用程序工作负载,请注意您不需要终止无法响应的容器k8s 因为 k8s 会为你监控和重启它们。

我对 swarm 的了解还不够,无法进行比较。我怀疑这对你来说会更容易一些,因为它更集中地针对 docker(k8s API 旨在支持其他 运行 次)但也许其他人可以对此发表评论.我猜想使用 swarm 是否对你有帮助取决于你的动机。