【问题标题】:Is it possible to run kubernetes as a docker container?是否可以将 kubernetes 作为 docker 容器运行?
【发布时间】:2016-02-21 01:59:08
【问题描述】:

我对 kubernetes 非常陌生,我正在尝试将其概念化并在本地进行设置,以便尝试在其上开发一些东西。

虽然我在 Windows 机器上运行,但有些困惑。

他们在 github 上的“入门”文档说你必须运行 Linux 才能使用 kubernetes。

由于 docker 在 windows 上运行,我想知道是否可以在 windows docker 中创建一个 kubernetes 实例作为容器,并使用它在同一个 windows docker 实例中管理集群的其余部分。

通过阅读设置说明,似乎 docker、kubernetes 和称为 etcd 的东西都必须在单个主机操作系统上“并行”运行......但我的一部分认为这可能是可能的

  1. 启动 docker,启动“默认”机器。
  2. 创建 kubernetes 容器 - 配置为与现有 docker 'default' 机器通信
  3. 使用 kubernetes 管理现有的 docker。

梦想?误入歧途的愚蠢?我看到在 vagrant 实例中运行它有一些选择。这是否意味着 docker、etcd 和 kubernetes 在单个 VM 中一起使用(进而在其中创建一个虚拟机集群?)

我觉得我需要画出这一切在物理硬件和“内存盒”方面的样子,才能真正理解这一点。

【问题讨论】:

    标签: windows docker boot2docker kubernetes etcd


    【解决方案1】:

    对于 Windows,您需要 docker-machine 和 boot2docker 虚拟机来运行与 docker 相关的任何内容。
    没有(还没有)“Windows 的 docker”。

    请注意,issue 7428 提到“无法在 boot2docker 中运行 kubernetes”。
    因此,即使您 follow instructions(来自使用 docker-machine 创建的默认 VM),您可能仍然 get errors

    ➜  workspace  docker run --net=host -d -v /var/run/docker.sock:/var/run/docker.sock  gcr.io/google_containers/hyperkube:v0.14.2 /hyperkube kubelet --api_servers=http://localhost:8080 --v=2 --address=0.0.0.0 --enable_server --hostname_override=127.0.0.1 --config=/etc/kubernetes/manifests
    ee0b490f74f6bc9b70c1336115487b38d124bdcebf09b248cec91832e0e9af1d
    
    ➜  workspace  docker logs -f ee0b490f74f6bc9b70c1336115487b38d124bdcebf09b248cec91832e0e9af1d
    W0428 09:09:41.479862       1 server.go:249] Could not load kubernetes auth path: stat : no such file or directory. Continuing with defaults.
    I0428 09:09:41.479989       1 server.go:168] Using root directory: /var/lib/kubelet
    

    替代方法是尝试在成熟的 Linux VM(如最新的 Ubuntu)上,而不是类似 boot2docker 的 VM(基于 TinyCore distro)。

    【讨论】:

    • 非常感谢!据我所知,尝试在 boot2docker 操作系统上运行 kubernetes。我认为该错误与获取 CONFIG_RESOURCE_COUNTERS github.com/docker/docker/pull/13546 有关,它在 boot2docker 中被禁用。我将尝试使用不同的 VM 作为我的基础。
    • @AlexC 是的,可以是不同的虚拟机,也可以是我昨天提到的不同的 iso (stackoverflow.com/a/33790465/6309)
    • 哦,可爱!因此,在某个地方甚至可能有一个图像可以用作我的“默认机器”,它已经为 kubernetes 正确配置。我会四处看看。非常感谢!
    【解决方案2】:

    所有 k8s 组件都可以使用 hyperkube 来构建,它可以帮助您构建一个容器化的组件。 如果您能够在 Windows 上运行 docker,它可能会起作用。我没有亲自在 Windows 上尝试过。

    【讨论】:

      猜你喜欢
      • 2018-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-06
      • 2016-05-27
      • 2018-03-22
      相关资源
      最近更新 更多