当我使用Google的Dataproc创建Compute群集时,如果群集名称为" MyCluster"在项目中," MyProject-107701"然后主集群在内部被识别为" mycluster-m.c.myproject-107701.internal" (不确定" .c"来自哪里,但它是使用nslookup揭示的内容)。在" mycluster-m"上进行nslookup揭示内部ip,但不是外部ip。
我可以在控制台的VM页面上看到外部ID。但是,我不知道如何以编程方式获取它(使用Java - 没有抓取html页面)。
我希望能够创建一个集群,将ip地址返回给外部进程,然后进行连接,但不想使用gsutil进行连接。我该怎么做?是否可以通过Dataproc Java API获取外部IP地址?
答案 0 :(得分:1)
通过两个API的组合可以实现。第一次调用是通过Dataproc API获取集群的主节点的确定列表。这可以使用clusters.get完成,并从cluster.config.masterConfig.instanceNames中提取主节点名称。
拥有主名称实例名称后,您可以使用计算引擎API get the GCE Instance,并从GCE实例中提取networkInterfaces[0].accessConfig.natIP。