【问题标题】:Does it make sense to run Kubernetes on a single server?在单个服务器上运行 Kubernetes 有意义吗?
【发布时间】:2019-03-18 22:48:14
【问题描述】:

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

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

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

此用途目前仅用于开发和登台,因此高可用性不是先决条件。

谢谢。

【问题讨论】:

    标签: docker kubernetes traefik


    【解决方案1】:

    AFAIU,

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

    • 确保在单个服务器中有足够的 (>=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/

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:

          仅当我管理具有我想部署到所述主机的相同项目的集群时,我才会使用单主机 k8s。这使您能够重用清单和您为集群创建的所有自动化。

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

          【讨论】:

            猜你喜欢
            • 2019-11-22
            • 2019-10-28
            • 2020-11-09
            • 1970-01-01
            • 2020-09-14
            • 1970-01-01
            • 2021-05-03
            • 2018-08-15
            • 1970-01-01
            相关资源
            最近更新 更多