是否可以 运行 kubernetes 作为 docker 容器?

Is it possible to run kubernetes as a docker container?

我是 kubernetes 的新手,正在尝试将其概念化并在本地进行设置,以便尝试在其上开发一些东西。

尽管我 运行 在 windows 机器上运行,但我感到很困惑。

他们在 github 中的 "getting started" 文档说你必须 运行 Linux 才能使用 kubernetes。

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

从阅读设置说明来看,似乎 docker、kubernetes 和名为 etcd 的东西都必须 运行 "in parallel" 在单个主机操作系统上......但是部分我认为有可能

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

白日梦?错误的愚蠢?我看到在 vagrant 实例中围绕 运行 有一些选项。这是否意味着 docker、etcd 和 kubernetes 在单个 VM 中一起使用(这又在其中创建了一个虚拟机集群?)

我觉得我需要画出这一切在物理硬件方面的样子,"memory boxes" 才能真正解决这个问题。

使用 Windows,您需要 docker-machine 和 boot2docker VM 到 运行 任何 docker 相关.
没有(还没有)"docker for Windows".

注意 issue 7428 提到了 "Can't run kubernetes within boot2docker"。
所以即使你 follow instructions (from a default VM created with docker-machine), you might still 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).

所有的k8s组件都可以用hyperkube来提升,它可以帮助你提升一个容器化的组件。 如果您能够 运行 docker on windows,它可能会起作用。我还没有亲自在 windows 上试过。