Recursos de rede do Distributed Cloud conectado

Esta página descreve os recursos de rede do Google Distributed Cloud conectado, 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 fazer isso, conclua as etapas desta seção. Por padrão, os servidores conectados do Distributed Cloud são enviados com a API Distributed Cloud Edge Network já ativada.

Console

  1. No Google Cloud console, 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 Distributed Cloud conectado

Esta seção descreve 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.
  • As sub-redes só oferecem suporte a IDs de VLAN. As sub-redes baseadas em CIDR não são aceitas.

Uma configuração de rede típica para o Distributed Cloud conectado 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 seus 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 à implantação conectada do Distributed Cloud conectividade de uplink básica à rede local.

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

Criar uma rede

Para criar uma nova rede, siga as instruções em Criar uma rede. Também é necessário criar pelo menos uma sub-rede na rede para permitir que os nós conectados do Distributed Cloud se conectem à rede.

Criar uma ou mais sub-redes

Para criar uma sub-rede, siga as instruções em Criar uma sub-rede. É necessário criar pelo menos uma sub-rede na 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 criados, faça o seguinte:

  1. Verifique o status operacional da rede.

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

Conectar 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 conectado oferece suporte ao isolamento de rede do 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 de 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 de ilha

O Distributed Cloud conectado oferece suporte ao modo de ilha para o subsistema de rede virtual. O modo de ilha permite especificar um intervalo de endereços IP isolado na 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 de ilha recebem apenas endereços desse intervalo de endereços "ilha" 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 de ilha não pode entrar em conflito com os seguintes intervalos de endereços IP:

  • 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 de ilha para outras redes no cluster

Configurar o modo de ilha

Para configurar o modo de ilha 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 isolado de destino e aplique o recurso Network modificado ao cluster. Exemplo:

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

Também é necessário definir os seguintes parâmetros:

  • type precisa ser definido como L3.
  • 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 de ilha 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. Consiga 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 isolado especificado.

Configurar o modo de ilha com o serviço ClusterIP

Para configurar o modo de ilha com o serviço ClusterIP, conclua as etapas da seção anterior e 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 agrupada com base no MetalLB no modo de camada 2. É possível usar essa solução para expor serviços executados na 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 isso antes da entrega. Tenha em mente o seguinte:
    • Essa sub-rede VIP é compartilhada entre todos os clusters do Kubernetes executados na zona do Distributed Cloud.
    • O primeiro (ID da rede), o segundo (gateway padrão) e o último (endereço de transmissão ) endereços na 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 zona do Distributed Cloud, o administrador do cluster especifica os pools de endereços de serviço de pod e ClusterIP usando a notação CIDR. O administrador de rede fornece a sub-rede VIP LoadBalancer apropriada ao administrador do cluster.
  3. Depois que o cluster é criado, o administrador do cluster configura os pools de VIP correspondentes. É necessário especificar os pools de VIP 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 esse pool de endereços VIP.
    • addresses: uma lista de endereços IPv4, intervalos de endereços e sub-redes a serem incluídos nesse 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 de destino LoadBalancer, em vez de fazer com 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 Kubernetes LoadBalancer apropriados.

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. Ao seguir estas etapas, o balanceamento de carga da camada 2 com o MetalLB é configurado automaticamente.

Recurso ClusterDNS

O Distributed Cloud conectado oferece suporte ao 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