#docker #serverless #containerd #faas #openfaas
#docker #бессерверный #контейнер #faas #openfaas
Вопрос:
У меня есть приложение, которое использует OpenFaaS.
В частности, я использую faasd, потому что функция будет работать на устройствах с низкой пропускной способностью. У меня есть частный реестр, в котором присутствует изображение функции ‘X’. Я хочу извлечь это изображение из faasd для его развертывания и выполнения, но я столкнулся с проблемой: похоже, что я не прошел проверку подлинности при попытке выполнить действие, но я правильно передаю токен registryAuth.
Здесь есть пример того, что я делаю (следуя этому https://ericstoekl.github.io/faas/operations/managing-images/#deploy-functions-with-private-registries-credentials)
Публикация
<ip_address>:8080/system/functions
Заголовки:
{
"Authorization": "mytoken"
}
Тело:
{
"service": "functionName",
"image": "<registry_ip_address>/functions/functionName:<version>",
"envProcess": "/.../myprocess",
"registryAuth": <base64 token obtained from 'user:password'>,
"secrets": [
"mysecret"
]
}
Я подтверждаю, что все параметры верны, и я получаю эту ошибку:
«невозможно извлечь изображение <registry_ip_address>/functions/functionName:: не удается извлечь: не удалось разрешить ссылку «<registry_ip_address>/functions/functionName:»: не указана область для проверки подлинности токена»
Реестр работает хорошо, потому что, если я попытаюсь загрузить изображение классическим способом с помощью docker, я смогу извлечь изображение.
Заранее благодарю вас!
Ответ №1:
Для faasd вам необходимо создать файл учетных данных.
Необходимо скопировать ваш обычный файл ~/.docker/config.json /var/lib/faasd/.docker/config.json
.
https://github.com/openfaas/faasd#a-note-on-private-repos—registries
Примечание о частных репозиториях / реестрах
Чтобы использовать частные репозитории изображений,
~/.docker/config.json
необходимо скопировать в/var/lib/faasd/.docker/config.json.
Если вы хотите настроить свой собственный частный реестр, ознакомьтесь с этим руководством.
Помните, что запуск
docker login
на macOS и Windows может создать пустой файл с вашими учетными данными, хранящимися в системном помощнике.В качестве альтернативы вы можете использовать
registry-login
команду из OpenFaaS Cloud bootstrap tool (ofc-bootstrap):curl -sLSf https://raw.githubusercontent.com/openfaas-incubator/ofc-bootstrap/master/get.sh | sudo sh ofc-bootstrap registry-login --username <your-registry-username> --password-stdin # (then enter your password and hit return)
Файл будет создан в
./credentials/
Комментарии:
1. Спасибо! Мне это очень помогло 🙂 Похоже, предоставленная вами ссылка больше не содержит информации.
2. @Klaus Я добавил содержимое из исходного документа, чтобы оно оставалось в стеке в будущем. Теперь, если я тоже смогу это понять…