Kubernetes: using OpenStack Cinder from one cloud provider while nodes on another

无人久伴 提交于 2019-12-01 06:02:13

问题


Maybe my question does not make sense, but this is what I'm trying to do:

  • I have a running Kubernetes cluster running on CoreOS on bare metal.
  • I am trying to mount block storage from an OpenStack cloud provider with Cinder.

From my readings, to be able to connect to the block storage provider, I need kubelet to be configured with cloud-provider=openstack, and use a cloud.conf file for the configuration of credentials.

I did that and the auth part seems to work fine (i.e. I successfully connect to the cloud provider), however kubelet then complains that it cannot find my node on the openstack provider.

I get:

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

This is similar to this question:

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

However, I know kubelet will not find my node at the OpenStack provider since it is not hosted there! The error makes sense, but how do I avoid it?

In short, how do I tell kubelet not to look for my node there, as I only need it to look up the storage block to mount it?

Is it even possible to mount block storage this way? Am I misunderstanding how this works?


回答1:


There seem to be new ways to attach Cinder storage to bare metal, but it's apparently just PoC

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




回答2:


Unfortunately, I don't think you can decouple the cloud provider for the node and that for the volume, at least not in the vanilla kubernetes.



来源:https://stackoverflow.com/questions/36322006/kubernetes-using-openstack-cinder-from-one-cloud-provider-while-nodes-on-anothe

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!