【问题标题】:Run Kubernetes locally and connect to remote Docker server在本地运行 Kubernetes 并连接到远程 Docker 服务器
【发布时间】:2020-11-19 16:59:54
【问题描述】:

我想在远程服务器上运行我的 docker 容器,因为我的机器不够强大。

我有 setup a Hetzner server with docker-machine 并已成功切换到该 docker 服务器。 Docker 命令现在在我的 Hetzner 机器上执行。

我想扩展此设置,以便能够在此远程 docker 服务器上运行 Kubernetes。

这可能吗?我需要在运行在 Hetzner 上的 VM 上安装 Kubernetes,还是可以运行仅使用远程服务器的本地 Kubernetes 实例?

我希望我的设置尽可能接近本地安装。

【问题讨论】:

  • 在这个层面上,Kubernetes 和 Docker 是完全不同的。如果您设置了 Kubernetes,您根本不应该期望能够使用 docker 命令与它进行交互。您希望如何使用远程系统;您只是调用服务的已发布端口,还是涉及更多?
  • 好吧,基本上我已经安装了一些 pod,其中的服务可以交互并公开一些 http 服务。我不打算与docker命令交互,但我认为kubernetes基本上是一个docker容器的管理工具,这就是为什么我认为我可以使用这样的远程docker服务器?
  • 您能否详细说明这个问题?你到底想达到什么目的?你的本地 k8s 设置是什么,minikube?你必须在这个远程 docker 服务器上安装 kubernetes,例如有一个叫做kind 的东西,我建议在这里使用它。 I want to run my docker containers @DavidMaze 提到 Kubernetes 和 Docker 是完全不同的。简而言之,Docker 有助于“创建”容器(镜像),而 Kubernetes 允许您在运行时“管理”它们(使用 docker 创建的镜像运行和公开部署)。
  • 我希望我可以简单地在本地运行一个连接到远程 docker 机器的 kubernetes 集群,但是我意识到 kubernetes 需要在远程机器上运行才能从我的本地设置。

标签: docker kubernetes docker-machine


【解决方案1】:

Kubernetes 需要一个控制平面(至少一台服务器)和代理“机器”(至少一台)。对于完整安装,它还需要一个 etcd 数据库。对于最低生产配置,您至少需要 9 台单独的服务器。

话虽如此,您可以在远程机器上运行Rancher's K3D,就像minikubeKind(以及其他)一样,是在一台机器上的docker 中运行的kubernetes 安装。就个人而言,我认为 K3D 是最好的选择,但意见不一。请注意,运行 Kubernetes 所需的资源非常高,并且您租用的服务器应该有足够的功率。对于简单的学习型工作负载,我建议至少 2 个内核和 8GB 内存。

有很多方法可以配置它并从本地计算机访问它。您需要在远程控制平面上打开端口以允许从本地访问,但听起来您已经为 docker 完成了此操作,因此您应该能够为 kubernetes 执行此操作。您还需要使用kubectl,但最好在 docker 容器中运行它,而不是在本地安装它。

【讨论】:

    【解决方案2】:

    按照我的理解,没有那么容易。必须在远程机器上安装一些 Kubernetes worker,我的本地 Kubernetes 服务器才能使用它。

    对我来说,最简单的解决方案是从 Digital Ocean 或 Google 租用一个完整的 Kubernetes 集群并使用它。它更昂贵,但运行起来会花费最少的精力。

    另一种解决方案是在远程机器上安装完整的 Kubernetes 设置(例如 Minikube),并通过 SSH 使用它。

    【讨论】:

    • 对于这个级别的提问者来说,从 gcp 或 d-o 租用 k8s 集群远非最简单的事情,而且作为学习平台也远非划算。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-16
    • 1970-01-01
    • 2019-07-01
    • 2019-07-12
    • 2022-11-24
    • 1970-01-01
    • 2017-10-10
    相关资源
    最近更新 更多