在单个服务器上运行Kubernetes是否有意义?

Flo*_*pes 8 docker kubernetes traefik

我正在使用Docker,我已经实现了一个系统,该系统使用Traefik(* .dev.domain.com)和Docker Compose模板,基于Git分支部署环境(在单个服务器上)。

我喜欢Kubernetes,因为我的基础架构仅限于一台服务器,所以从未使用过它。我只在本地安装(Windows的Docker)中使用过它。

因此,我的问题是:在单个服务器上运行Kubernetes“集群”(主节点和节点)来编排和路由容器(代替Traefik / Rancher / Docker Compose)是否有意义?

此用途仅用于开发和暂存,因此高可用性不是先决条件。

谢谢。

viv*_*d4v 10

阿法尤,

我没有看到对 kubernetes 的要求,除非我们至少在使用本机docker rundocker-compose或的单个主机上执行以下操作docker engine swarm mode-

  • 确保单个服务器中有足够(>=2)的应用程序副本,并且您正在平衡这些应用程序 Docker 容器之间的负载。
  • 如果你想更进一步,我们应该能够动态地放大和缩小(docker swarm 模式支持开箱即用,否则可以使用jwilder nginx proxy)。
  • 您的部署不应导致停机。确保单个容器在部署时随时保持健康。
  • 如果您的 HTTP 或 TCP 健康检查失败,容器应该自动修复(自动重新启动)。
  • 完成上述所有操作肯定会让您处于更好的位置,但单个主机仍然是单一故障源,您必须定期处理。
  • 首选:如果可能,尝试以docker engine swarm modeorkubernetes single master或 开头minikube。这将自动处理开箱即用的所有上述场景,并且还允许您随时通过添加更多节点来进一步扩展,而无需对 docker swarm 或 kubernetes 的 YML 文件进行太多更改。

参考 -
https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/ https://docs.docker.com/engine/swarm/


Ija*_*han 9

如果不是生产环境,那么使用多少个节点并不重要。所以是的,在这种情况下应该没问题。但请确保test/dev中提供了生产中需要的所有 k8s 功能,以保持相似性和可移植性。