4

也许我的问题没有意义,但这是我想要做的:

  • 我有一个正在运行的 Kubernetes 集群,它在裸机上的 CoreOS 上运行。
  • 我正在尝试使用 Cinder 从 OpenStack 云提供商安装块存储。

从我的读数来看,为了能够连接到块存储提供程序,我需要kubelet配置cloud-provider=openstack,并使用一个cloud.conf文件来配置凭据。

我这样做了,auth 部分似乎工作正常(即我成功连接到云提供商),但是kubelet随后抱怨它无法在openstack提供商上找到我的节点。

我得到:

Unable to construct api.Node object for kubelet: failed to get external ID from cloud provider: Failed to find object

这类似于这个问题:

无法为 kubelet 构造 api.Node 对象:无法从云提供商获取外部 ID:无法找到对象

但是,我知道kubelet在 OpenStack 提供商处找不到我的节点,因为它没有托管在那里!这个错误是有道理的,但我该如何避免呢?

简而言之,我如何告诉kubelet不要在那里寻找我的节点,因为我只需要它来查找存储块来挂载它?

甚至可以以这种方式安装块存储吗?我是否误解了这是如何工作的?

4

2 回答 2

2

似乎有新的方法可以将 Cinder 存储连接到裸机,但这显然只是 PoC

http://blog.e0ne.info/post/Attach-Cinder-Volume-to-the-Ironic-Instance-without-Nova.aspx

于 2016-04-05T20:48:01.147 回答
1

不幸的是,我认为您不能将节点的云提供商和卷的云提供商解耦,至少在 vanilla kubernetes 中不能。

于 2016-04-04T18:05:05.530 回答