CATTLE_ENVIRONMENT_ADMIN_ACCESS_KEY 应该如何设置在 Rancher 容器中?

How is CATTLE_ENVIRONMENT_ADMIN_ACCESS_KEY supposed to be set in a Rancher container?

我正在处理一个需要用 rancher CLI 替换 rancher-compose 的项目。同时,我的 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 密钥和一个通过 Rancher GUI 配置的环境 API 密钥。我在 Linux shell 中设置 RANCHER_ACCESS_KEYRANCHER_SECRET_KEY 环境值,依次使用 API 键和环境 API 键.这些都没有用。我还尝试使用 API 键值设置 RANCHER_ACCESS_KEYRANCHER_SECRET_KEY,并使用环境 API 键设置 CATTLE_ENVIRONMENT_ADMIN_ACCESS_KEYCATTLE_ENVIRONMENT_ADMIN_SECRET_KEY。那也没有用。我还在部署脚本中添加了代码,以将环境文件传递给 CLI up 命令以设置 CATTLE_* 变量,但这不起作用。我还修改了 docker-compose.yml 以添加一个 environment: 列表,但没有效果。

我在哪里可以找到关于 CATTLE_ENVIRONMENT_ADMIN_ACCESS_KEY 应该是什么的文档,以及如何设置它以使阻止负载平衡器容器启动的致命错误不再发生?

关于奖励积分,告诉我如何摆脱关于 KUBERNETES_URL not being set 的错误消息:我们在这个项目中根本没有使用 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

我还尝试在 Linux shell 中设置一个 RANCHER_ENVIRONMENT 环境变量,一次设置为 1a5,一次设置为 Default。这些更改都没有任何区别。

您是否尝试过设置 rancher 环境密钥?

RANCHER_ENVIRONMENT=xxx

您使用的 rancher cli 命令是什么?

kubernetes 错误很常见,我认为 Rancher 在 Cattle 之前检查它。

事实证明,问题是 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 频道上发布问题时的回复。我能够解决问题的唯一方法是通过两周的试错调试,并且只是凭经验偶然发现解决方案。