Google api 确定在google compute engine中的托管实例组调整大小操作中添加了哪些节点

Google api 确定在google compute engine中的托管实例组调整大小操作中添加了哪些节点,google-api,google-compute-engine,google-kubernetes-engine,Google Api,Google Compute Engine,Google Kubernetes Engine,我想在google计算引擎和google容器引擎上为适配器编写测试。 例如: node = gce.managedInstanceGroup("myGroup").createNode() //do something with node node.delete() 当我尝试在托管群集上使用调整大小操作添加节点时,我得到一个操作: { "kind": "compute#operation", "id": -- "name": "operation---", "zone": "https://w

我想在google计算引擎和google容器引擎上为适配器编写测试。
例如:

node = gce.managedInstanceGroup("myGroup").createNode()
//do something with node
node.delete()
当我尝试在托管群集上使用调整大小操作添加节点时,我得到一个操作:

{
"kind": "compute#operation",
"id": --
"name": "operation---",
"zone": "https://www.googleapis.com/compute/v1/projects/--/zones/us-east1-d",
"operationType": "compute.instanceGroupManagers.resize",
"targetLink": "https://www.googleapis.com/compute/v1/projects/--/zones/us-east1-d/instanceGroupManagers/---grp",
"targetId": "--",
"status": "DONE",
"user": "--@--.iam.gserviceaccount.com",
"progress": 100,
"insertTime": "2016-05-10T04:40:28.281-07:00",
"startTime": "2016-05-10T04:40:28.283-07:00",
"endTime": "2016-05-10T04:40:28.283-07:00",
"selfLink": "https://www.googleapis.com/compute/v1/projects/--/zones/us-east1-d/operations/operation---"
}
我看不到一种方法来提取它正在创建哪些节点。 我可以获得所有节点的列表,并查看哪些节点处于创建状态,但这并不意味着它们是由我的操作创建的。我不能删除它们,我不知道它们来自哪里

有没有办法准确确定我的调整大小操作在托管实例组中创建了哪些节点?
此外,如果我的操作没有完成,我如何知道我的操作何时完成?如何清理节点?

或者,除了调整大小操作外,是否有其他方法将节点添加到托管实例组

要知道添加了哪些节点,可以在调整大小之前和之后,查看哪些节点在之后存在,哪些节点在之前不存在

要告知操作何时完成,请通过调整大小请求返回。您可以直接访问“selfLink”字段的内容。在您展示的示例中,根据其“状态”字段判断,它已经完成


除了调整大小操作之外,我不知道如何将节点添加到托管实例组中,我也不知道您为什么要这样做?

要知道添加了哪些节点,您可以在调整大小之前和之后查看哪些节点在之后存在,哪些节点在之前不存在

要告知操作何时完成,请通过调整大小请求返回。您可以直接访问“selfLink”字段的内容。在您展示的示例中,根据其“状态”字段判断,它已经完成


除了调整大小操作之外,我不知道有什么方法可以将节点添加到托管实例组中,我也不知道您为什么要这样做?

托管实例组使用“基于意图”的语义进行操作,即,您告诉实例组您希望的组状态是什么,并且组将以最佳方式达到该状态。操作所做的唯一事情就是设置目标状态。在粘贴的示例操作中,您可以看到它具有
“状态”:“完成”
。托管实例组不会跟踪由于哪个操作而创建的实例,因为当您有多个(有时是相互矛盾的)并行运行的操作时,概念上会变得非常混乱。请记住,许多人都连接了自动治疗器和自动缩放器,它们独立地更改目标状态

注册/配置新创建的实例的典型方法是在实例模板中定义一个将自动处理所有事情的实例。如果您真的需要实例的名称列表,那么正如Alex Robinson所写,唯一的方法是列出操作之前和之后的所有实例,并计算差异

如果一次只运行一个操作,则可以轮询并等待所有操作都运行。还有一个方便的命令可以做到这一点


如果您需要更好地手动控制实例组中的实例,您可以始终创建一个普通(非托管)实例组:

托管实例组使用“基于意图”的语义进行操作,即,您告诉实例组您希望的组状态是什么,组将以最佳方式达到该状态。操作所做的唯一事情就是设置目标状态。在粘贴的示例操作中,您可以看到它具有
“状态”:“完成”
。托管实例组不会跟踪由于哪个操作而创建的实例,因为当您有多个(有时是相互矛盾的)并行运行的操作时,概念上会变得非常混乱。请记住,许多人都连接了自动治疗器和自动缩放器,它们独立地更改目标状态

注册/配置新创建的实例的典型方法是在实例模板中定义一个将自动处理所有事情的实例。如果您真的需要实例的名称列表,那么正如Alex Robinson所写,唯一的方法是列出操作之前和之后的所有实例,并计算差异

如果一次只运行一个操作,则可以轮询并等待所有操作都运行。还有一个方便的命令可以做到这一点


如果您需要更好地手动控制实例组中的实例,您可以始终创建一个普通(非托管)实例组:

在前后轮询不是一个好主意,可能会有其他客户端添加节点,或者同时发生多个操作。我有点不明白为什么这很重要,假定由托管实例组创建的所有实例的配置相同。如果您想根据创建虚拟机的人对虚拟机进行不同的处理,听起来您希望它们位于单独的实例组中,或者根本不在实例组中。它们的配置相同,但状态不同。每个实例上运行不同的东西。所以,如果在我的测试中启动一个节点,然后运行一些东西——我想在那个节点上运行它。然后我想终止那个节点。我想要某种程度的隔离,最好不要每次测试都启动一个新的集群。在测试之前和之后进行轮询不是一个好主意,可能会有其他客户端添加节点,或者同时发生多个操作。我有点不明白为什么这很重要,假定由托管实例组创建的所有实例的配置相同。如果您想根据创建虚拟机的人对虚拟机进行不同的处理,听起来您希望它们位于单独的实例组中,或者根本不在实例组中。它们的配置相同,但状态不同。每个实例上运行不同的东西。所以如果在我的测试中