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

时间:2018-10-14 08:45:32

标签: docker kubernetes traefik

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

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

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

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

谢谢。

4 个答案:

答案 0 :(得分:2)

AFAIU,

除非我们至少对使用本地docker rundocker-composedocker engine swarm mode-

的单个主机执行以下操作,否则我看不到kubernetes的要求。
  • 确保单个服务器中有足够多(> = 2)个应用程序副本,并且您正在平衡这些应用程序Docker容器之间的负载。
  • 如果您想提高一点,我们应该能够动态地缩放(docker swarm模式支持此功能,否则请使用jwilder nginx proxy)。
  • 您的部署不应导致停机。部署时,请确保单个容器在任何时候都保持健康。
  • 如果HTTP或TCP运行状况检查失败,容器应自动修复(自动重新启动)。
  • 执行上述所有操作无疑会使您处于更好的位置,但是单个主机仍然是导致故障的唯一原因,您必须定期对其进行处理。
  • 首选:如果可能,请尝试以docker engine swarm modekubernetes single masterminikube开头。这将自动解决所有上述情况,并且还允许您通过添加更多节点随时扩展规模,而无需在Docker swarm或kubernetes的YML文件中进行太多更改。

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

答案 1 :(得分:1)

如果不是生产环境,则使用多少个节点都没有关系。是的,在这种情况下应该没问题。但是请确保 production 中需要的所有k8s功能都在 test / dev 中可用,以保持相似和可移植的状态。

答案 2 :(得分:1)

仅当我使用要部署到所述主机的相同项目管理群集时,才使用单主机k8。这样,您就可以重复使用清单和为集群创建的所有自动化功能。

如果我只有一个主机环境,我可能会坚持使用docker-compose。

答案 3 :(得分:0)

如果您想尝试一下,最简单的选择可能是minikube(易于在本地运行单节点集群,但没有某些功能),或者使用其中一个免费试用帐户来管理大型Kubernetes服务云提供商(功能齐全且具有多节点功能,但使用前必须先付费)。