может ли один экземпляр вычислительного движка Google Cloud иметь несколько внешних IP-адресов - PullRequest
1 голос
/ 03 мая 2020

Я использую Google Cloud Compute Engin для запуска небольшого веб-сервера, а также некоторых других серверов. В настоящее время я использую бесплатную пробную версию. Я перейду на платную учетную запись, когда срок ее действия истечет, но я хотел бы иметь другой сервер на другой WAN IP-адрес Я знаю, что могу использовать другой порт и выполнять переадресацию / перенаправление, но мой вопрос в том, может ли один экземпляр иметь несколько внешних IP-адресов или мне нужно будет создать / оплатить другой экземпляр, чтобы получить второй внешний IP-адрес?

1 Ответ

1 голос
/ 04 мая 2020

Да, вы можете создать экземпляр виртуальной машины с несколькими внешними IP-адресами.

Ознакомьтесь с документацией Создание экземпляров с несколькими сетевыми интерфейсами :

По умолчанию каждый экземпляр в сети VP C имеет единственное значение по умолчанию сетевой интерфейс. Используйте эти инструкции для создания дополнительных сетевых интерфейсов. Каждый интерфейс подключен к отдельной сети VP C, предоставляя этому экземпляру доступ к различным сетям VP C в Google Cloud Platform (GCP). Вы не можете подключить несколько сетевых интерфейсов к одной и той же сети VP C.

и в разделе Требования :

  • Вы можете настраивать сетевой интерфейс можно только при создании экземпляра.
  • Каждый сетевой интерфейс, настроенный в одном экземпляре, должен быть подключен к отдельной сети VP C, а каждый интерфейс должен принадлежать к су bnet, чей IP Диапазон не перекрывается с подсетями любых других интерфейсов.
  • Дополнительные сети VP C, к которым будут подключаться несколько интерфейсов, должны существовать до создания экземпляра. См. Использование VP C Сети для получения инструкций по созданию дополнительных сетей VP C.
  • Вы не можете удалить сетевой интерфейс без удаления экземпляра.

и

  • Каждый интерфейс может дополнительно иметь внешний IP-адрес.

Я пытался создать такую ​​виртуальную машину:

  1. создать пользовательский VP C сетей :

    $ gcloud compute networks create test-vpc-network-1 --subnet-mode=custom
    $ gcloud compute networks create test-vpc-network-2 --subnet-mode=custom
    
  2. создать пользовательских VP C подсетей :

    $ gcloud compute networks subnets create test-subnet-1 --network=test-vpc-network-1 --region=europe-west3 --range=172.16.1.0/24
    $ gcloud compute networks subnets create test-subnet-2 --network=test-vpc-network-2 --region=europe-west3 --range=172.16.2.0/24
    
  3. резервные данные c внешние IP-адреса (необязательно):

    $ gcloud compute addresses create test-static-ip-1 --region=europe-west3
    $ gcloud compute addresses create test-static-ip-2 --region=europe-west3
    
  4. создать Экземпляр виртуальной машины:

    $ gcloud compute instances create test-instance-2ip --zone=europe-west3-a --machine-type=n1-standard-1 --network-interface subnet=test-subnet-1,address=34.89.215.180 --network-interface subnet=test-subnet-2,address=35.234.123.210 --tags=test-instance-2ip --image=ubuntu-1804-bionic-v20200430 --image-project=ubuntu-os-cloud --boot-disk-device-name=test-instance-2ip
    

    и вот он - экземпляр виртуальной машины с 2 внешними IP-адресами:

    NAME               ZONE            MACHINE_TYPE   PREEMPTIBLE  INTERNAL_IP            EXTERNAL_IP                   STATUS
    test-instance-2ip  europe-west3-a  n1-standard-1               172.16.1.3,172.16.2.2  XXX.89.XXX.180,XXX.234.XXX.210  RUNNING
    
  5. не забудьте создать правила брандмауэра :

    $ gcloud compute firewall-rules create test-instance-2ip-vpc-1 --direction=INGRESS --priority=900 --network=test-vpc-network-1 --action=ALLOW --rules=tcp,udp --source-ranges=0.0.0.0/0 --target-tags=test-instance-2ip
    $ gcloud compute firewall-rules create test-instance-2ip-vpc-2 --direction=INGRESS --priority=900 --network=test-vpc-network-2 --action=ALLOW --rules=tcp,udp --source-ranges=0.0.0.0/0 --target-tags=test-instance-2ip
    

    приведенные выше правила приведены только для примера.

Кроме того, обратите внимание на стороннее пример .

Также в качестве возможной альтернативы можно попробовать Протокол пересылки ing :

Вы можете настроить несколько правил пересылки, чтобы указывать на один целевой экземпляр, позволяя использовать несколько внешних IP-адресов с одним экземпляром виртуальной машины. Вы можете использовать это в сценарии ios, где вам может потребоваться обслуживать данные только с одного экземпляра виртуальной машины, но через разные внешние IP-адреса. Это особенно полезно для настройки виртуального хостинга SSL.

...