docker - 在Kubernetes中自动生成Pod

标签 docker kubernetes docker-swarm kubernetes-apiserver

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

我想迁移到Kubernetes,但是我开始认为我当前的服务器将无法像docker中那样自动“生成” pod。

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

Docker Swarm是否是一个更好的解决方案,还是在Kubernetes中进行了隐蔽的实践? Kubernetes Python API是否会成为自动生成Pod和作业的逻辑解决方案,而Flask服务器是管理集群中其他Pod的Pod?

最佳答案

'Kubectl run'与'docker run'非常相似,因为它将基于docker镜像(例如How do i run curl command from within a Kubernetes pod)创建一个带有容器的Pod。有关更多比较,请参见https://kubernetes.io/docs/reference/kubectl/docker-cli-to-kubectl/。但是,使用k8运行的Pod / Job是包含容器而不是直接运行容器的Pod / Job,因此这将为您增加一层额外的复杂性。

Kubernetes的重点在于协调服务,而不是运行短暂的工作。它具有一些功能,可用于运行作业,但这不是其重点。如果您朝着这个方向发展,那么您可能想看看knative(和knative构建)或kubeless,因为您所描述的听起来很像无服务器概念。或者,如果您想更多地考虑乔布斯,那么也许是旅(https://brigade.sh)。 (有关更多信息,请参见https://www.quora.com/Is-Kubernetes-suited-for-long-running-batch-jobs)。如果您要运行可处理请求的Web应用程序工作负载,请注意,由于k8将为您监视并重新启动它们,因此您无需杀死无法在k8上响应的容器。

我不知道有很多人可以比较。我怀疑这对您来说会容易一些,因为它更集中于docker(k8s API旨在支持其他运行时),但是也许其他人可以对此发表评论。我猜想使用群体是否对您有帮助,取决于您的动机。

关于docker - 在Kubernetes中自动生成Pod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53935190/

相关文章:

hadoop - 在 docker swarm 外部访问 hdfs

docker - 无法使用Docker容器中的ENV变量在docker-compose文件中执行HEALTHCHECKS

Docker突然无法识别-p命令

logging - kubernetes/var/logs/不断增长

docker - 通过 kubernetes 集群中的服务公开 kubernetes pod

docker - Docker UCP API修剪

Docker swarm 容器无法解析另一个节点中容器的地址

docker - "kubeadm init"设置高可用集群失败

io - 在生产环境中,在 LXC 或 Docker 中运行 Cassandra 是个好主意吗?

docker - 通过 Helm 缓慢安装/升级(针对 Kubernetes)