我正在一个项目中,需要用rancher-compose
CLI替换rancher
。同时,我的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
我有一个通过Rancher GUI配置的API密钥和环境API密钥。我依次使用API密钥和环境API密钥在Linux Shell中设置了RANCHER_ACCESS_KEY
和RANCHER_SECRET_KEY
环境值。这些都不起作用。我还尝试使用API密钥值设置RANCHER_ACCESS_KEY
和RANCHER_SECRET_KEY
,并使用环境API密钥设置CATTLE_ENVIRONMENT_ADMIN_ACCESS_KEY
和CATTLE_ENVIRONMENT_ADMIN_SECRET_KEY
。那也没有用。我还向部署脚本添加了代码,以将环境文件传递给CLI up
命令以设置CATTLE_*
变量,该变量无效。我还修改了docker-compose.yml
以添加一个environment:
列表,但这没有任何效果。
在哪里可以找到有关CATTLE_ENVIRONMENT_ADMIN_ACCESS_KEY
应该是什么的文档,以及如何进行设置以使停止负载均衡器容器启动的致命错误不再发生?
要获得奖励积分,请告诉我如何摆脱未设置KUBERNETES_URL
的错误消息:我们在此项目中完全没有使用Kubernetes ,所以我有< em>不不知道那个来自哪里。
编辑
$ 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
。这些变化都没有任何改变。
答案 0 :(得分:0)
您是否尝试过设置牧场主环境密钥?
RANCHER_ENVIRONMENT=xxx
您正在使用的rancher cli命令是什么?
kubernetes错误非常普遍,我认为Rancher会在Cattle之前对其进行检查。
答案 1 :(得分:0)
事实证明,问题在于rancher
CLI对命令行参数顺序很敏感,而rancher-compose
并不这样:对于rancher-compose
,此命令行正常工作: / p>
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上发布问题时,我得到了 零 渠道。我能够解决该问题的唯一方法是经过两周的试错调试,然后凭经验绊倒整个解决方案。