我们使用的是queue based managed instance scaling。我们需要按实例组在虚拟机上设置环境变量(以便可以使用相同的虚拟机映像来订阅不同实例组中的不同队列)。在创建实例组时,我看不到定义环境变量的选项。
有没有一种方法可以跨多个实例组使用相同的映像,同时仍然基于实例组级别的不同环境变量或其他方式实现不同的VM行为?
示例:使用相同的VM镜像创建2个托管实例组。一个将环境变量'queue-name‘设置为'queue-1’,另一个将'queue-name‘设置为'queue-2’。部署到first instance-group中的VM的应用程序从发布/订阅队列“queue -1”中提取任务,而其他组中的应用程序从“queue-1”中提取任务。
发布于 2018-03-06 18:04:35
使用两个模板相同的VM映像
为了使用具有不同行为的相同VM映像创建两个实例组,您肯定可以使用两个不同的instance templates。
通过这种方式,您将能够更改网络配置、启动和关闭脚本或元数据。
例如,您可以使用startup script来设置不同的环境变量,并以这种方式连接到一个环境变量。像here这样的堡垒例子。
使用相同的模板相同的VM映像
另一方面,如果你不能使用两个不同的模板,我会提出一个小技巧,但我猜有几种方法可以做到。
正如你注意到的,没有直接的方法(因为在模板创建中已经有了定制的可能性)。
我会在启动脚本中添加一小部分代码,利用gcloud命令了解它所属的实例组的名称,并根据这些信息以不同的方式设置环境变量。
通过这种方式,您只需要遵循某种模式来命名您的实例,但我相信您可以找到更优雅的解决方案。
或者,您甚至可以根据机器的主机名做出决定(但我更不喜欢这个解决方案)。
https://stackoverflow.com/questions/49109113
复制相似问题