可以将Kubernetes运行为一个Docker容器吗?

5

我对kubernetes非常陌生,试图通过本地安装来概念化它以及尝试在其上开发一些东西。

然而存在一个问题,我正在使用Windows机器。

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

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

从设置说明中可以看出,docker、kubernetes和称为etcd的东西都必须在单个主机操作系统上“并行”运行...但我认为这可能是可行的:

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

白日梦?错误愚蠢?我看到有一些选择可以在vagrant实例中运行它。那是否意味着docker、etcd和kubernetes共同在单个VM中运行(进而在其中创建虚拟机群集)?

我觉得我需要画出这一切在物理硬件和“记忆盒子”方面的外观图,才能真正理解这一切。

2个回答

3
在Windows系统上,如果想要运行任何与Docker相关的内容,您需要使用docker-machine和boot2docker虚拟机。
目前还没有“适用于Windows的Docker”版本。
请注意问题7428提到了“无法在boot2docker中运行kubernetes”。
因此,即使按照(使用docker-machine创建的默认VM的)说明进行操作,仍然可能会出现错误
  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虚拟机(例如最新的Ubuntu),而不是类似于boot2docker的虚拟机(基于TinyCore distro)。


非常感谢!我正在尝试在boot2docker操作系统上运行Kubernetes,但是目前为止我还没有成功。我觉得错误可能与获取CONFIG_RESOURCE_COUNTERS有关,但是在boot2docker中该选项被禁用。我会尝试使用其他虚拟机作为基础环境。 - Alex C
@AlexC 是的,可以使用不同的虚拟机或者像我昨天提到的不同的ISO文件(https://dev59.com/KJHea4cB1Zd3GeqPmTo1#33790465)。 - VonC
哦,太好了!也许有一张图片已经正确配置为 Kubernetes 的“默认机器”,我可以在某个地方使用它。我会找找看。非常感谢! - Alex C

1
所有的k8s组件都可以通过hyperkube启动,它可以帮助您启动一个容器化的组件。如果您能在Windows上运行docker,这个方法可能也可以使用。我个人没有在Windows上尝试过。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接