Kubernetes: использование OpenStack Cinder от одного облачного провайдера, в то время как узлы на другом

Возможно, мой вопрос не имеет смысла, но вот что я пытаюсь сделать:

  • У меня работает кластер Kubernetes, работающий на CoreOS на голом железе.
  • Я пытаюсь смонтировать блочное хранилище от облачного провайдера OpenStack с помощью Cinder.

Из моих чтений, чтобы иметь возможность подключиться к провайдеру блочного хранилища, мне нужно kubelet быть настроенным с cloud-provider=openstackи использовать cloud.conf файл для настройки учетных данных.

Я сделал это, и аутентификационная часть, кажется, работает нормально (т.е. я успешно подключаюсь к облачному провайдеру), однако kubelet затем жалуется, что не может найти мой узел на openstack поставщик.

Я получил:

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

Это похоже на этот вопрос:

Невозможно создать объект api.Node для kubelet: не удалось получить внешний идентификатор от облачного провайдера: не удалось найти объект

Однако я знаю kubelet не найдет мой узел у провайдера OpenStack, поскольку он там не размещен! Ошибка имеет смысл, но как мне ее избежать?

Короче как мне сказать kubelet не искать там мой узел, так как мне нужно только найти блок хранения, чтобы смонтировать его?

Можно ли вообще так монтировать хранилище блоков? Я неправильно понимаю, как это работает?

2 ответа

Кажется, есть новые способы прикрепить хранилище Cinder к голому металлу, но это, очевидно, просто PoC

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

К сожалению, я не думаю, что вы можете отделить облачный провайдер для узла и от тома, по крайней мере, в ванильных кубернетах.

Другие вопросы по тегам