Метаданные настраиваемого изображения Kubernetes API - PullRequest
0 голосов
/ 14 июля 2020

Я пытаюсь использовать Kubernetes API для чтения метаданных через аннотации из образов контейнеров. Метаданные применимы к каждому экземпляру уважаемого образа и необходимы для правильного запуска любого результирующего контейнера. После этого SO вопроса невозможно читать Docker метки изображений напрямую из kubernetes API.

Следующей моей мыслью было использовать пользовательские аннотации, добавленные в манифест изображения, хотя это кажется быть довольно хакерским решением для такой "простой" задачи. В любом случае, если я добавлю аннотации к манифесту, используя docker, я не вижу возможности прочитать их из Kubernetes API.

Я думаю, что здесь я ошибаюсь. Это кажется довольно простой задачей, которую, вероятно, уже реализовали другие люди ... в любом случае я не могу найти никакой дополнительной информации по этому поводу. Неужели так сложно читать метаданные изображения через кубернеты перед развертыванием контейнера этого образа?

Заранее спасибо за любую помощь!

Изменить:

Причина, по которой я спрашиваю, потому что я хочу предоставить контейнерам определенных c изображений доступ к определенным c последовательным USB-устройствам (например, FTDI232) в различных хост-системах. Поскольку я не знаю, какой путь (например, / dev / ttyUSB0) будет назначен USB-устройствам, я написал программу, которая отслеживает USB-устройства и, в случае, если соответствующее устройство подключено или подключается, создает контейнер и передает ему соответствующий путь. Изнутри контейнера я хочу получить доступ к последовательному устройству через stati c, неизменяемый путь (например, / dev / FTDI232)

1 Ответ

1 голос
/ 15 июля 2020

Да. Когда дело доходит до API K8s, я считаю, что абстракции для метаданных образа контейнера находятся на более низком уровне и, вероятно, не учтены по какой-то причине. Вы всегда можете посмотреть CRI spe c, чтобы узнать, что поддерживается (обратите внимание, что do c устарел, поэтому вам, возможно, придется посмотреть код).

Если конечной целью является использование Kubernetes для запуска ваших рабочих нагрузок, кажется, что более реальный путь здесь - это просто написать сценарий, который считывает этот манифест изображения вне Kubernetes и создает файлы манифеста, которые вам нужны для запуска ваших рабочих нагрузок после (на основе этого метаданные), а затем, наконец, примените его к своему кластеру.

Если вы используете общий реестр образов контейнеров, вы также можете написать что-то, что извлекает изображения из этого реестра, чтобы просто выбирать метаданные и изменения метаданных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...