代码之家  ›  专栏  ›  技术社区  ›  mkingston

确定静态外部IP地址与哪个计算实例关联

  •  1
  • mkingston  · 技术社区  · 6 年前

    是否可以确定静态外部IP地址与哪些计算实例关联?我看到下面的连接链:

    address -> forwarding rule -> target proxy -> url map -> backend service -> instance group
    

    现在我可以列出最终实例组中包含的实例。但这是一条很长的链条。有没有什么惯用的方法可以快速实现这一点,或者我需要编写脚本吗?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Zachary Newman    6 年前

    注意到 gcloud 可以列出实例的外部IP:

    $ gcloud compute instances list
    NAME  ZONE          MACHINE_TYPE   ...  EXTERNAL_IP  STATUS
    test  asia-east1-a  n1-standard-1  ...  1.1.1.1      RUNNING
    ...
    

    如果你再和 --verbosity info 标志,您将看到列中的外部IP行来自(请参见 gcloud topic formats gcloud topic projections ):

    networkInterfaces[].accessConfigs[0].natIP.notnull().list():label=EXTERNAL_IP
    

    您可以通过(注意 0 对于 accessConfigs ;这将聚合所有NAT IP:

    $ gcloud compute instances list \
          --format 'value(networkInterfaces[].accessConfigs[].natIP)'
    [u'1.1.1.1']
    [u'1.1.1.2']
    ...
    

    有了特定的IP,你可以把它变成 filter expression :

    $ gcloud compute instances list \
          --filter 'networkInterfaces[].accessConfigs[].natIP:1.1.1.1'
    NAME  ZONE          MACHINE_TYPE   ...  EXTERNAL_IP  STATUS
    test  asia-east1-a  n1-standard-1  ...  1.1.1.1      RUNNING
    ...
    

    当实例是实例组的一部分时,这对我有效。