Recursos de rede do Distributed Cloud conectado

Esta página descreve os recursos de rede do Google Distributed Cloud Connected, incluindo sub-redes e balanceamento de carga.

Ativar a API Distributed Cloud Edge Network

Antes de configurar a rede em uma implantação conectada do Distributed Cloud, é necessário ativar a API Distributed Cloud Edge Network. Para isso, siga as etapas nesta seção. Por padrão, os servidores do Distributed Cloud connected são enviados com a API Distributed Cloud Edge Network já ativada.

Console

  1. No console do Google Cloud , acesse a página da API Distributed Cloud Edge Network.

    Ativar a API

  2. Clique em Ativar.

gcloud

Use o comando a seguir:

gcloud services enable edgenetwork.googleapis.com

Configurar a rede no Google Distributed Cloud conectado

Nesta seção, descrevemos como configurar os componentes de rede na implantação conectada do Distributed Cloud.

As seguintes limitações se aplicam aos servidores conectados do Distributed Cloud:

  • Só é possível configurar sub-redes, e
  • As sub-redes só são compatíveis com IDs de VLAN. Sub-redes baseadas em CIDR não são compatíveis.

Uma configuração de rede típica para o Distributed Cloud Connected consiste nas seguintes etapas:

  1. Opcional: inicialize a configuração de rede da zona de destino, se necessário.

  2. Criar uma rede.

  3. Crie uma ou mais sub-redes na rede.

  4. Teste sua configuração.

  5. Conecte os pods à rede.

Inicializar a configuração de rede da zona do Distributed Cloud

É necessário inicializar a configuração de rede da zona conectada do Distributed Cloud imediatamente após a instalação do hardware conectado do Distributed Cloud no local. A inicialização da configuração de rede de uma zona é um procedimento único.

A inicialização da configuração de rede de uma zona cria uma rede padrão chamada default. Essa configuração fornece à sua implantação conectada do Distributed Cloud conectividade de uplink básica com sua rede local.

Para instruções, consulte Inicializar a configuração de rede de uma zona.

Criar uma rede

Para criar uma rede, siga as instruções em Criar uma rede. Você também precisa criar pelo menos uma sub-rede dentro da rede para permitir que os nós conectados do Distributed Cloud se conectem a ela.

Criar uma ou mais sub-redes

Para criar uma sub-rede, siga as instruções em Criar uma sub-rede. É preciso criar pelo menos uma sub-rede na sua rede para permitir que os nós acessem a rede. A VLAN correspondente a cada sub-rede criada fica disponível automaticamente para todos os nós na zona.

Testar a configuração

Para testar a configuração dos componentes de rede que você criou, faça o seguinte:

  1. Verifique o status operacional da rede.

  2. Verifique o status de provisionamento de cada sub-rede.

Conecte seus pods à rede

Para conectar seus pods à rede e configurar funções de rede avançadas, siga as instruções em Operador de função de rede. Essa funcionalidade não está disponível para cargas de trabalho máquina virtual.

(Opcional) Configurar o isolamento de rede do cluster

O Distributed Cloud Connected oferece suporte ao isolamento de rede de cluster. Os nós atribuídos a um cluster isolado da rede não podem se comunicar com outros nós na mesma zona conectada do Distributed Cloud. Para ativar o isolamento da rede do cluster, use a flag --enable-cluster-isolation ao criar ou modificar um cluster. Para mais informações, consulte Criar e gerenciar clusters.

(Opcional) Configurar o modo isolado

O Distributed Cloud Connected oferece suporte ao modo isolado para o subsistema de rede virtual. O modo de ilha permite especificar um intervalo de endereços IP isolado em uma interface de rede secundária de um pod. Esse intervalo de endereços isolado é independente do intervalo de endereços da VLAN da interface de rede principal. Os pods configurados para o modo isolado recebem apenas endereços desse intervalo isolado. Para mais informações, consulte Modelos de rede no modo plano x ilha.

O intervalo de endereços IP isolado especificado para o modo isolado não pode entrar em conflito com os seguintes intervalos:

  • O CIDR da VLAN principal para qualquer rede configurada no cluster
  • O intervalo de endereços IP virtuais do balanceador de carga especificado na anotação networking.gke.io/gdce-lb-service-vip-cidrs no recurso Network
  • Os intervalos de endereços IP usados para o modo isolado em outras redes no cluster

Configurar o modo isolado

Para configurar o modo isolado no nível do pod, adicione a anotação networking.gke.io/gdce-pod-cidr ao recurso personalizado Network correspondente. Defina o valor da anotação como o intervalo de endereços IP isolados de destino e aplique o recurso Network modificado ao cluster. Exemplo:

networking.gke.io/gdce-pod-cidr: 172.15.10.32/27

Você também precisa definir os seguintes parâmetros:

  • O campo type precisa ser definido como L3.
  • O campo IPAMMode precisa ser definido como Internal.

Exemplo:

apiVersion: networking.gke.io/v1
kind: Network
metadata:
  name: my-network
  annotations:
    # Enable island mode and specify the isolated address range.
    networking.gke.io/gdce-pod-cidr: 172.15.10.32/27
    # Specify the VLAN ID for this secondary network.
    networking.gke.io/gdce-vlan-id: "561"
    # Specify the CIDR block for load balancer services on this network.
    networking.gke.io/gdce-lb-service-vip-cidrs: 172.20.5.180/30
spec:
  # Network type must be L3 for island mode.
  type: L3
  # IPAMMode must be Internal for island mode.
  IPAMMode: Internal
  nodeInterfaceMatcher:
    interfaceName: gdcenet0.561 # The name for the target network interface.
  gateway4: 172.20.5.177 # Gateway IP address; must be unique in this CR.
  externalDHCP4: false
  dnsConfig:
    nameservers:
    - 8.8.8.8

Para verificar se o modo isolado está ativado, faça o seguinte:

  1. Crie um pod de teste e aplique-o ao cluster. Exemplo:

    apiVersion: v1
    kind: Pod
    metadata:
      name: island-pod-tester
      annotations:
        networking.gke.io/interfaces: '[{"interfaceName":"eth1","network":"test-network-vlan561"}]'
        networking.gke.io/default-interface: "eth1"
    spec:
      containers:
      - name: sample-container
        image: busybox
        command: ["/bin/sh", "-c", "sleep 3600"]
    
  2. Acesse o endereço IP do pod:

    kubectl get pod island-pod-tester -o wide
    

    O comando retorna o endereço IP do pod, que está dentro do intervalo de endereços isolados especificado.

Configurar o modo isolado com o serviço ClusterIP

Para configurar o modo ilha com o serviço ClusterIP, conclua as etapas na seção anterior, adicione a anotação networking.gke.io/gke-gateway-clusterip-cidr ao recurso Network e defina o valor de acordo com as necessidades da sua empresa. Os intervalos de endereços especificados no recurso Network não podem se sobrepor. Exemplo:

apiVersion: networking.gke.io/v1
kind: Network
metadata:
  annotations:
    networking.gke.io/gdce-lb-service-vip-cidrs: 172.20.5.180/30
    networking.gke.io/gdce-pod-cidr: 172.15.10.32/27
    networking.gke.io/gdce-vlan-id: "561"
    networking.gke.io/gke-gateway-clusterip-cidr: 10.20.1.0/28
  name: test-network-vlan561
spec:
  IPAMMode: Internal
  dnsConfig:
    nameservers:
    - 8.8.8.8
  externalDHCP4: false
  gateway4: 172.20.5.177
  nodeInterfaceMatcher:
    interfaceName: gdcenet0.561
  type: L3

Balanceamento de carga

O Distributed Cloud é fornecido com uma solução de balanceamento de carga de rede em pacote baseada no MetalLB no modo de Camada 2. É possível usar essa solução para expor serviços executados na sua zona do Distributed Cloud ao mundo externo usando endereços IP virtuais (VIPs) da seguinte maneira:

  1. O administrador de rede planeja a topologia de rede e especifica a sub-rede de endereço IPv4 virtual necessária ao fazer o pedido do Distributed Cloud. O Google configura o hardware do Distributed Cloud de acordo com suas necessidades antes da entrega. Lembre-se do seguinte:
    • Essa sub-rede de VIP é compartilhada entre todos os clusters do Kubernetes que são executados na sua zona do Distributed Cloud.
    • O primeiro (ID da rede), o segundo (gateway padrão) e o último (endereço de transmissão) endereços da sub-rede são reservados para a funcionalidade principal do sistema. Não atribua esses endereços aos pools de endereços das configurações do MetalLB.
    • Cada cluster precisa usar um intervalo de VIP separado que esteja dentro da sub-rede VIP configurada.
  2. Ao criar um cluster na sua zona do Distributed Cloud, o administrador do cluster especifica os pools de endereços de serviço do pod e do ClusterIP usando a notação CIDR. O administrador de rede fornece a sub-rede VIP LoadBalancer adequada ao administrador do cluster.
  3. Depois que o cluster é criado, o administrador configura os pools de VIPs correspondentes. É necessário especificar os pools de VIPs usando a flag --external-lb-address-pools ao criar o cluster. A flag aceita um arquivo com um payload YAML ou JSON no seguinte formato:

     addressPools:
     - name: foo
       addresses:
       - 10.2.0.212-10.2.0.221
       - fd12::4:101-fd12::4:110
       avoid_buggy_ips: true
       manual_assign: false
    
     - name: bar
       addresses:
       - 10.2.0.202-10.2.0.203
       - fd12::4:101-fd12::4:102
       avoid_buggy_ips: true
       manual_assign: false
    

    Para especificar um pool de endereços VIP, forneça as seguintes informações no payload:

    • name: um nome descritivo que identifica exclusivamente este pool de endereços VIP.
    • addresses: uma lista de endereços IPv4, intervalos de endereços e sub-redes a serem incluídos neste pool de endereços.
    • avoid_buggy_ips: exclui endereços IP que terminam com .0 ou .255.
    • manual_assign: permite atribuir manualmente endereços desse pool na configuração do serviço LoadBalancer de destino em vez de deixar que o controlador do MetalLB os atribua automaticamente.

    Para mais informações sobre como configurar pools de endereços VIP, consulte Especificar pools de endereços na documentação do MetalLB.

  4. O administrador do cluster cria os serviços LoadBalancer do Kubernetes adequados.

Os nós do Distributed Cloud em um único pool de nós compartilham um domínio comum da camada 2 e, portanto, também são nós do balanceador de carga do MetalLB.

ClusterDNS recurso

O Distributed Cloud Connected é compatível com o recurso ClusterDNS do Google Distributed Cloud para configurar servidores de nomes upstream para domínios específicos usando a seção spec.domains. Para mais informações sobre como configurar esse recurso, consulte spec.domains.

A seguir