如何在Rancher中pipe理环境variables

我想要pipe理堆栈中的环境variables,然后服务可以使用它。 例如:我定义了一个evn tracker_ip = 192.168.0.101,然后我想在服务创build中使用它。

创build服务

我该怎么办

可以有几个答案取决于你想要做什么以及你如何部署你的堆栈。

使用CLI / Rancher撰写

如果您正在使用命令行,则可以使用可变插值。 有关如何操作的说明可以在官方文档中find:

https://docs.rancher.com/rancher/v1.5/en/cli/variable-interpolation/

使用Rancher UI /目录

如果你想通过Rancher UI来做到这一点,你可以通过在目录中创build一个模板并input问题来input你的环境variables。 更多细节如何在这里:

https://docs.rancher.com/rancher/v1.5/en/catalog/private-catalog/

您可以像这样在rancher-compose.yml文件中定义问题:

version: '2' catalog: name: My Application version: v0.0.1 questions: - variable: TRACKER_IP label: Tracker IP address required: true default: 192.168.0.101 type: string 

然后,您可以将答案推送到您的docker-compose.yml模板的环境部分,以便在图像中使用:

 version: '2' services: web: image: myimage ports: - 8000 environment: TRACKER_IP: ${TRACKER_IP} 

没有办法做你到底在问什么,因为这将允许编辑运行容器和容器的variables是不可改变的。 可以在服务上定义环境variables,但是在堆栈上没有定义一次环境variables,并使其可用于所有服务。

秘密有点像这样,可以跨服务共享,但不能编辑。

根据tracker_ip的关联位置,您也可以创build一个外部服务作为堆栈的一部分。 外部服务本质上只是在Rancher中创build一个DNS条目。 因此,您可以将您的服务与撰写的external_tracker服务相关联,然后引用tracker

 version: '2' services: myservice: ... link: - tracker_service:tracker ...