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
Это похоже на этот вопрос:
Однако я знаю kubelet
не найдет мой узел у провайдера OpenStack, поскольку он там не размещен! Ошибка имеет смысл, но как мне ее избежать?
Короче как мне сказать kubelet
не искать там мой узел, так как мне нужно только найти блок хранения, чтобы смонтировать его?
Можно ли вообще так монтировать хранилище блоков? Я неправильно понимаю, как это работает?
2 ответа
Кажется, есть новые способы прикрепить хранилище Cinder к голому металлу, но это, очевидно, просто PoC
http://blog.e0ne.info/post/Attach-Cinder-Volume-to-the-Ironic-Instance-without-Nova.aspx
К сожалению, я не думаю, что вы можете отделить облачный провайдер для узла и от тома, по крайней мере, в ванильных кубернетах.