Como configurar NEGs por zona

Como configurar grupos de endpoints de rede e adicionar endpoints

Este documento contém instruções para configurar grupos de endpoints de rede (NEGs, na sigla em inglês) zonais. Antes de configurá-los, leia a Visão geral dos grupos de endpoints de rede.

Como criar grupos de endpoints de rede zonais

Console

Para criar um grupo de endpoints de rede zonal:

  1. Acesse a página Grupos de endpoints da rede no Google Cloud Console.
    Acessar a página "Grupos de endpoints de rede"
  2. Clique em CRIAR GRUPO DE ENDPOINTS DE REDE.
  3. Em Tipo de grupo de endpoints de rede, selecione Tipo de endpoint de rede: zonal.
  4. Digite o Nome do grupo de endpoints de rede.
  5. Selecione o Local da rede VPC.
  6. Selecione a Rede VPC.
  7. Selecione a Sub-rede.
  8. Selecione a Zona.
  9. Selecione o Tipo de endpoint da rede.
  10. Digite a Porta padrão do endpoint da rede.
  11. Clique em Criar.

gcloud

Para criar um grupo de endpoints de rede zonal:

gcloud compute network-endpoint-groups create NEG_NAME \
    --zone=ZONE \
    --network=NETWORK
    [--subnet=SUBNET]
    [--default-port=DEFAULT_PORT]

Nesse comando, as sinalizações são definidas da seguinte maneira:

  • NEG_NAME é o nome do novo grupo de endpoints da rede. É preciso que o nome seja exclusivo no namespace.
  • ZONE é o nome da zona em que o NEG foi criado;
  • NETWORK é o nome da rede em que o NEG foi criado; Se omitida, o Google Cloud usará uma rede chamada default.
  • SUBNET é o nome da sub-rede a que os endpoints de rede pertencem. Essa sinalização é opcional se for uma rede de modo automático. Se omitida, o NEG ficará na sub-rede criada automaticamente da região da zona selecionada. A sinalização é necessária se for uma rede de modo personalizado ou se você precisar especificar uma sub-rede criada manualmente.
  • DEFAULT_PORT é a porta padrão associada ao NEG. Essa sinalização é opcional. Se omitida, será preciso especificar todos os endpoints por porta IP. Se incluída, a parte port pode ser omitida da especificação do endpoint, e a porta padrão é utilizada.

Exemplo:

gcloud compute network-endpoint-groups create my-lb-neg \
    --network=my-network \
    --subnet=my-subnet \
    --default-port=80  \
    --zone=asia-southeast1-a

Como adicionar endpoints a um grupo de endpoints de rede

Console

Para adicionar endpoints a um grupo de endpoints de rede:

  1. Acesse a página Grupos de endpoints da rede no Google Cloud Console.
    Acessar a página "Grupos de endpoints de rede"
  2. Clique no Nome do grupo de endpoints da rede em que você quer adicionar endpoints. Você verá a página Detalhes do grupo de endpoints de rede.
  3. Na seção Endpoints da rede neste grupo, clique em Adicionar endpoint da rede. Você verá a página Adicionar endpoint de rede.
  4. Selecione uma Instância de VM para adicionar seus endereços IP internos como endpoints da rede e clique em Adicionar. Você verá a Interface de rede, a zona e a sub-rede da VM.
  5. Digite o Endereço IP ou o intervalo do novo endpoint da rede.
  6. Selecione o Tipo de porta.
    1. Se você selecionar Padrão, o endpoint usará a porta padrão para todos os endpoints no grupo de endpoints da rede.
    2. Se você selecionar Personalizado, insira o Número da porta do endpoint que será usado.
  7. Para adicionar mais endpoints, clique em Adicionar endpoint da rede e repita as etapas 5 e 6.
  8. Depois de adicionar todos os endpoints necessários, clique em Adicionar.

gcloud

Para adicionar endpoints a um grupo de endpoints de rede:

gcloud compute network-endpoint-groups update NEG_NAME \
    [--zone=ZONE] \
    --add-endpoint 'instance=INSTANCE_NAME,[ip=IP_ADDRESS],[port=PORT]' \
    [--add-endpoint ...]

No comando acima:

  • NEG_NAME é o nome do NEG.
  • ZONE é o nome da zona em que o NEG reside.
  • INSTANCE_NAME é o nome da VM a que o endereço IP pertence.
  • IP_ADDRESS é o endereço IP do endpoint de rede que está sendo adicionado.
  • PORT é a porta do endpoint de rede que está sendo adicionado. A porta é opcional se a porta padrão for especificada no NEG.

Exemplo:

gcloud compute network-endpoint-groups update my-lb-neg \
    --zone=asia-southeast1-a
    --add-endpoint 'instance=my-vm1,ip=10.1.1.1,port=80' \

Como adicionar um NEG zonal a um serviço de back-end

Console

Para adicionar um grupo de endpoints de rede a um serviço de back-end:

  1. Acesse a página "Balanceamento de carga" no Console do Google Cloud.
    Acessar a página "Balanceamento de carga"
  2. Clique no nome do balanceador de carga em que está o serviço de back-end a ser editado.
  3. Na página Detalhes do balanceador de carga, clique em Editar .
  4. Na página Editar balanceador de carga, clique em Configuração de back-end.
  5. Na página Configuração de back-end, clique em Editar .
  6. Clique em +Adicionar back-end.
  7. Selecione um Grupo de endpoints de rede zonal e clique em Concluído.
  8. Clique em Atualizar.

gcloud

Para adicionar um NEG a um serviço de back-end:

gcloud compute backend-services add-backend BACKEND_SERVICE \
    [--network-endpoint-group=NETWORK_ENDPOINT_GROUP] \
    [--network-endpoint-group-zone=ZONE]

Exemplo:

gcloud compute backend-services add-backend my-lb \
   --network-endpoint-group my-lb-neg \
   --network-endpoint-group-zone=asia-southeast1-a \
   --global \
   --balancing-mode=RATE \
   --max-rate-per-endpoint=5

Como remover um NEG de um serviço de back-end

Console

  1. Acesse a página "Balanceamento de carga" no Console do Google Cloud.
    Acessar a página "Balanceamento de carga"
  2. Clique no nome do balanceador de carga em que está o serviço de back-end a ser editado.
  3. Na página Detalhes do balanceador de carga, clique em Editar .
  4. Na página Editar balanceador de carga, clique em Configuração de back-end.
  5. Na página Configuração de back-end, clique em Editar no serviço de back-end do qual você está removendo o NEG.
  6. Na seção Back-end, localize o NEG que será removido e clique no ícone de lixeira dele.
  7. Clique em Atualizar.

gcloud

Para remover um NEG de um serviço de back-end:

gcloud compute backend-services remove-backend BACKEND_SERVICE \
    --network-endpoint-group=NETWORK_ENDPOINT_GROUP \
    --network-endpoint-group-zone=NETWORK_ENDPOINT_GROUP_ZONE

Exemplo:

gcloud compute backend-services remove-backend my-lb \
    --network-endpoint-group=my-lb-neg \
    --network-endpoint-group-zone=asia-southeast1-a

Como remover endpoints de um grupo de endpoints de rede

Quando um endpoint de rede é removido de um NEG de balanceamento de carga, a diminuição da conexão é acionada com base nos parâmetros de diminuição especificados no serviço de back-end. Se vários serviços de back-end fizerem referência ao mesmo NEG, será aplicado o intervalo máximo de diminuição a todos os serviços de back-end.

Console

Para remover endpoints de um grupo de endpoints de rede:

  1. Acesse a página Grupos de endpoints da rede no Google Cloud Console.
    Acessar a página "Grupos de endpoints de rede"
  2. Clique no Nome do grupo de endpoints da rede em que estão os endpoints a serem excluídos. Você verá a página Detalhes do grupo de endpoints de rede.
  3. Selecione os endpoints da rede a serem excluídos e clique em Remover endpoint.

gcloud

Para remover endpoints de um grupo de endpoints de rede:

gcloud compute network-endpoint-groups update NEG_NAME \
[--zone=ZONE] \
--remove-endpoint 'instance=INSTANCE_NAME,[ip=IP],[port=PORT]' \
--remove-endpoint ...

Exemplo:

gcloud compute network-endpoint-groups update my-lb-neg \
     --remove-endpoint 'instance=my-vm1,ip=10.1.1.1,port=80' \
     --zone=asia-southeast1-a

Como listar grupos de endpoints de rede

Console

Veja uma lista de grupos de endpoints de rede na página "Grupos de endpoints de rede" no Console do Google Cloud.
Acessar a página "Grupos de endpoints de rede"

gcloud

Para listar grupos de endpoints de rede:

gcloud compute network-endpoint-groups list

Como descrever um grupo de endpoints de rede específico

Console

Para ver os detalhes de um grupo de endpoints de rede específico:

  1. Acesse a página Grupos de endpoints da rede no Google Cloud Console.
    Acessar a página "Grupos de endpoints de rede"
  2. Clique no nome do grupo de endpoints da rede em que estão os detalhes que você quer ver.

gcloud

Para ver os detalhes de um grupo de endpoints de rede específico:

gcloud compute network-endpoint-groups describe NEG_NAME \
    [--zone=ZONE]

No comando acima:

  • NEG_NAME é o nome do grupo de endpoints da rede.
  • ZONE, que é opcional, é o nome da zona em que o NEG foi criado.

Por exemplo, com o comando gcloud a seguir, você lista informações sobre o grupo de endpoints de rede my-lb-neg.

gcloud compute network-endpoint-groups describe my-lb-neg \
    --zone=asia-southeast1-a

A saída do comando é a seguinte:

    creationTimestamp: '2018-04-09T14:51:34.381-07:00'
    id: '5260475207627726473'
    kind: compute#networkEndpointGroup
    loadBalancer:
      defaultPort: 80
      network: https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/networks/default
      zone: https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/asia-southeast1-a

Como remover grupos de endpoints de rede

Um grupo de endpoints de rede não pode ser excluído se estiver conectado a um serviço de back-end. Antes de excluir um NEG, verifique se ele está separado do serviço de back-end.

A exclusão de uma VM faz com que todos os endpoints da rede na VM sejam removidos imediatamente do NEG e causa o fechamento de todas as conexões. Excluir um NEG após a exclusão de um serviço de back-end também remove todos os endpoints nesse NEG sem diminuição da conexão.

Console

Para remover um grupo de endpoints de rede de um serviço de back-end:

  1. Acesse a página "Balanceamento de carga" no Console do Google Cloud.
    Acessar a página "Balanceamento de carga"
  2. Clique no nome do balanceador de carga em que está o serviço de back-end a ser editado.
  3. Na página Detalhes do balanceador de carga, clique em Editar .
  4. Na página Editar balanceador de carga, clique em Configuração de back-end.
  5. Na página Configuração de back-end, clique em Editar no serviço de back-end do qual você está removendo o NEG.
  6. Na seção Back-end, localize o NEG que será removido e clique no ícone de lixeira dele.
  7. Clique em Atualizar.

Para excluir um grupo de endpoints de rede:

  1. Acesse a página Grupos de endpoints da rede no Google Cloud Console.
    Acessar a página "Grupos de endpoints de rede"
  2. Localize o grupo de endpoints de rede a ser excluído.
  3. Clique no ícone de lixeira nessa linha.

gcloud

Para remover um grupo de endpoints de rede de um serviço de back-end:

gcloud compute backend-services remove-backend BACKEND_SERVICE \
    [--network-endpoint-group=NETWORK_ENDPOINT_GROUP] \
    [--network-endpoint-group-zone=ZONE]

Para excluir um grupo de endpoints de rede:

gcloud compute network-endpoint-groups delete NEG_NAME \
    --zone=ZONE

Exemplo:

gcloud compute backend-services remove-backend my-neg-backend \
    --network-endpoint-group=my-lb-neg \
    --network-endpoint-group-zone=southeast1-a
gcloud compute network-endpoint-groups delete my-lb-neg \
    --zone=asia-southeast1-a

Como listar endpoints em um grupo de endpoints de rede

Console

Para visualizar uma lista de endpoints em um grupo de endpoints de rede:

  1. Acesse a página Grupos de endpoints da rede no Google Cloud Console.
    Acessar a página "Grupos de endpoints de rede"
  2. Clique no Nome do grupo de endpoints da rede em que estão os endpoints a serem excluídos. Você verá a página Detalhes do grupo de endpoints de rede, em que estão listados os endpoints do grupo.
  3. Para filtrar os endpoints, crie pares de chave-valor no campo de texto em Endpoints de rede neste grupo.

gcloud

Para listar todos os endpoints de rede em um grupo de endpoints de rede:

gcloud compute network-endpoint-groups list-network-endpoints NEG_NAME \
    [--zone=ZONE]

Filtragem personalizada ao listar endpoints em um grupo de endpoints de rede

A filtragem personalizada é um recurso Beta.

É possível usar um filtro personalizado para limitar quais endpoints de um grupo de endpoints da rede são listados. A filtragem personalizada está ativada apenas para a API REST. Não é possível usar a filtragem personalizada no Console do Cloud ou a interface de linha de comando gcloud.

Veja detalhes na documentação do método networkEndpointGroups.listNetworkEndpoints.

Verificação de integridade de endpoints de rede

Os serviços com back-ends de NEG zonal precisam usar uma verificação de integridade em que a especificação da porta seja:

  • fixa e numerada (--port); ou
  • configurada para usar a porta de exibição do endpoint de rede (--use-serving-port).

No exemplo a seguir, você cria uma verificação de integridade que usa a porta de exibição do endpoint de rede com a sinalização --use-serving-port. A sinalização --use-serving-port é implementada com gcloud compute health-checks create, mas não com gcloud compute health-checks update.

Não é possível usar uma verificação de integridade legada com um back-end de NEG zonal. Saiba mais em Conceitos da verificação de integridade.

Exemplo de NEG zonal de balanceamento de carga

No exemplo a seguir, você cria um NEG zonal de balanceamento de carga, anexa três endpoints de rede a ele e lista os endpoints. Isso pressupõe que você tenha três VMs com serviços sendo executados nas portas.

  1. Crie uma sub-rede, endereços IP de alias e duas VMs.

    gcloud compute networks subnets create subnet-a \
        --network network-a \
        --range 10.128.0.0/16 \
        --secondary-range container-range=192.168.0.0/16
    
    gcloud compute instances create vm1 --zone asia-southeast1-a \
        --network-interface \
        "subnet=subnet-a,aliases=r1:192.168.0.0/24;secondaryrange1:192.168.1.0/24"
    
    gcloud compute instances create vm2 --zone asia-southeast1-a \
        --network-interface \
        "subnet=subnet-a,aliases=r1:192.168.2.0/24"
    
  2. Crie o NEG. Observe que é possível ter vários NEGs na mesma zona.

    gcloud compute network-endpoint-groups create neg1 \
         --zone=asia-southeast1-a \
         --network=network-a --subnet=subnet-a \
         --default-port=80
    
        Created [https://www.googleapis.com/compute/v1/projects/project/zones/asia-southeast1-a/networkEndpointGroups/my-lb-neg].
        NAME       LOCATION       TYPE            ENDPOINT_TYPE   DEFAULT_PORT ENDPOINTS
        neg1  asia-southeast1-a  LOAD_BALANCING  80           0
    
  3. Adicione endpoints ao NEG.

    gcloud compute network-endpoint-groups update neg1 \
       --zone=asia-southeast1-a
       --add-endpoint 'instance=vm1,ip=192.168.0.1' \
       --add-endpoint 'instance=vm1,ip=192.168.0.1,port=8080' \
       --add-endpoint 'instance=vm1,ip=192.168.1.2,port=8088' \
       --add-endpoint 'instance=vm1,ip=192.168.1.2,port=8080' \
       --add-endpoint 'instance=vm2,ip=192.168.2.1,port=8088' \
       --add-endpoint 'instance=vm2,ip=192.168.2.2,port=8080'
    
  4. Crie uma verificação de integridade.

    gcloud compute health-checks create http healthcheck1 --use-serving-port
    
  5. Crie o serviço de back-end:

    gcloud compute backend-services create backendservice1 \
        --global \
        --health-checks healthcheck1 \
        --global-health-checks
    
  6. Adicione um back-end ao serviço de back-end:

    gcloud compute backend-services add-backend backendservice1 --global \
       --network-endpoint-group=neg1 \
       --network-endpoint-group-zone=asia-southeast1-a \
       --balancing-mode=RATE --max-rate-per-endpoint=5
    
  7. Crie um mapa de URLs:

    gcloud compute url-maps create urlmap1 --default-service backendservice1
    
  8. Crie o proxy de destino.

    gcloud compute target-http-proxies create httpproxy1 --url-map urlmap1
    
  9. Crie a regra de encaminhamento.

    gcloud compute forwarding-rules create forwardingrule1 \
        --ip-protocol TCP --ports=80 --global --target-http-proxy httpproxy1
    
  10. Crie as regras de firewall.

    gcloud compute firewall-rules create allow-load-balancer \
        --network network-a \
        --source-ranges 130.211.0.0/22,35.191.0.0/16 \
        --target-tags lb \
        --allow tcp