Как CATTLE_ENVIRONMENT_ADMIN_ACCESS_KEY должен быть установлен в контейнере Rancher?

Я работаю над проектом, требующим замены rancher-compose на rancher CLI. В то же время моя установка Rancher была обновлена ​​с 1.6.21 (IIRC) до 1.6.27. Стеки развертываются правильно при использовании rancher-compose. Когда я развертываю стеки с помощью rancher CLI, все контейнеры балансировщика нагрузки имеют в своих журналах ошибки, подобные этой:

6/5/2019 11:08:30 PM time="2019-06-06T03:08:30Z" level=error msg="Failed to initialize Kubernetes controller: KUBERNETES_URL is not set"
6/5/2019 11:08:30 PM 009921c0-3362-45a0-9ae1-3f2f4d06e7fatime="2019-06-06T03:08:30Z" level=info msg="Starting Rancher LB service"
6/5/2019 11:08:30 PM time="2019-06-06T03:08:30Z" level=info msg="Listening on /tmp/log.sock"
6/5/2019 11:08:30 PM time="2019-06-06T03:08:30Z" level=fatal msg="CATTLE_ENVIRONMENT_ADMIN_ACCESS_KEY is not set, fail to init of Rancher LB provider"
6/5/2019 11:08:32 PM + METADATA_ADDRESS=169.254.169.250
6/5/2019 11:08:32 PM + curl -s -f http://169.254.169.250/2015-12-19/self/service/uuid
6/5/2019 11:08:32 PM + /usr/bin/update-rancher-ssl
6/5/2019 11:08:32 PM + exec lb-controller --controller rancher --provider haproxy

Когда я использую rancher-compose CLI, стеки запускаются без ошибок.

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

Unauthorized access to internal API. Please refer to https://support.google.com/customsearch/answer/4542055

У меня есть ключ API и ключ API среды, настроенные через графический интерфейс Rancher. Я установил значения среды RANCHER_ACCESS_KEY и RANCHER_SECRET_KEY в своей оболочке Linux, по очереди используя ключ API и ключ API среды. Ни один из них не работал. Я также пытался установить RANCHER_ACCESS_KEY и RANCHER_SECRET_KEY, используя значения ключей API, и установить CATTLE_ENVIRONMENT_ADMIN_ACCESS_KEY и CATTLE_ENVIRONMENT_ADMIN_SECRET_KEY, используя ключи API среды. Это тоже не сработало. Я также добавил код в сценарий развертывания для передачи файла среды команде CLI up для установки переменных CATTLE_*, что не сработало. Я также изменил docker-compose.yml, чтобы добавить список environment:, но это не дало никакого эффекта.

Где я могу найти документацию о том, что должно быть CATTLE_ENVIRONMENT_ADMIN_ACCESS_KEY, и как установить его так, чтобы фатальные ошибки, мешающие запуску контейнеров балансировщика нагрузки, перестали возникать?

За бонусные баллы скажите мне, как избавиться от сообщения об ошибке о том, что KUBERNETES_URL не установлено: Мы не используем Kubernetes в этом проекте совсем, поэтому у меня нет откуда взялось это.


ИЗМЕНИТЬ

$ rancher-compose --version
rancher-compose version v0.12.5
$ rancher --version
rancher version v0.6.13
$ docker --version
Docker version 18.09.6, build 481bc77

Я также попытался установить переменную среды RANCHER_ENVIRONMENT в своей оболочке Linux, один раз на 1a5 и один раз на Default. Ни одно из этих изменений не имело никакого значения.


person FKEinternet    schedule 06.06.2019    source источник


Ответы (2)


Вы пытались также установить ключ среды ранчера?

RANCHER_ENVIRONMENT=xxx

И какую команду Rancher cli вы используете?

Ошибка kubernetes довольно распространена, я думаю, Rancher проверяет ее перед Cattle.

person Rafael Rodrigo De Souza    schedule 10.06.2019
comment
Ошибка возникает только в контейнерах балансировщика нагрузки, все остальные работают корректно. Если бы нужно было установить ключ RANCHER_ENVIRONMENT, я бы ожидал, что другие контейнеры потерпят неудачу. Как я уже говорил в своем вопросе, проект, над которым я работаю, переходит с rancher-compose CLI на rancher CLI, и эта ошибка возникает только с rancher CLI. - person FKEinternet; 13.06.2019

Оказалось, что проблема в том, что rancher CLI чувствителен к порядку параметров командной строки, в отличие от rancher-compose: с rancher-compose эта командная строка работала правильно:

rancher-compose --file docker-compose.yml --rancher-file rancher-compose.yml up pull

Однако для rancher CLI команды должны быть представлены перед файлами:

rancher up pull --file docker-compose.yml --rancher-file rancher-compose.yml

Это не задокументировано НИГДЕ, и я не получил ноль ответов, когда опубликовал свой вопрос на канале Rancher в Slack. Единственный способ, которым я смог решить проблему, — это две недели отладки методом проб и ошибок и простое эмпирическое решение.

person FKEinternet    schedule 22.07.2019