Nesta página, mostramos como criar uma sub-rede global no Google Distributed Cloud (GDC) isolado por ar e usar essa sub-rede para um balanceador de carga externo (ELB).
Com as sub-redes globais, é possível configurar sub-redes que usam operações de balanceamento de carga externo em várias zonas da sua organização do GDC. O balanceamento de carga traz os benefícios de melhor desempenho, confiabilidade e disponibilidade de aplicativos e serviços ao distribuir o tráfego de rede em vários servidores. Para mais informações sobre sub-redes globais para balanceamento de carga, consulte Sobre sub-redes para balanceamento de carga.
Esta página é destinada a desenvolvedores do grupo de operadores de aplicativos que querem gerenciar o balanceamento de carga da organização. Para mais informações, consulte a documentação sobre públicos-alvo para GDC air-gapped.
Antes de começar
Para criar uma sub-rede global e configurá-la para ELBs, você precisa ter o seguinte:
- Ser proprietário do projeto em que você está configurando o balanceador de carga. Para mais informações, consulte Criar um projeto.
Os papéis necessários de identidade e acesso:
- Peça ao administrador do IAM da organização para conceder a você o papel de administrador do balanceador de carga (
load-balancer-admin
). - Peça ao administrador do IAM da organização para conceder a você o papel de administrador do balanceador de carga global (
global-load-balancer-admin
). - Peça ao administrador do IAM da organização para conceder a você o papel de administrador da organização de sub-rede (
subnet-org-admin
). - Peça ao administrador do IAM da organização para conceder a você o papel de administrador do projeto de sub-rede (
subnet-project-admin
).
Para mais informações, consulte Descrições de papéis predefinidos.
- Peça ao administrador do IAM da organização para conceder a você o papel de administrador do balanceador de carga (
Criar uma sub-rede global principal
A sub-rede global principal criada nesta seção serve como o pool de endereços IP de onde os endereços IP do ELB são originados. A sub-rede precisa
incluir o rótulo ipam.gdc.goog/network-segment: data
. É possível especificar o pai da sub-rede usando o campo spec.parentReference.name
.
Você tem duas opções para configurar o CIDR dessa sub-rede principal:
- Criar uma sub-rede usando uma configuração CIDR estática
- Criar uma sub-rede usando uma configuração de CIDR dinâmico
Para mais informações sobre a diferença entre configurações de CIDR estáticas e dinâmicas, consulte Configuração de CIDR estática e dinâmica.
Criar uma sub-rede usando uma configuração CIDR estática
Use uma configuração CIDR estática quando precisar de controle preciso sobre seu espaço de endereços IP.
Essa sub-rede tem o tipo Branch
. Para mais informações sobre os tipos de sub-rede raiz, ramificação e folha, consulte Hierarquia de sub-rede.
Para criar uma sub-rede global principal com uma configuração CIDR estática, adicione o bloco CIDR escolhido ao campo spec.ipv4Request.cidr
:
kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF
apiVersion: ipam.global.gdc.goog/v1
kind: Subnet
metadata:
labels:
ipam.gdc.goog/network-segment: data
name: ELB_PARENT_SUBNET_NAME
namespace: platform
spec:
ipv4Request:
cidr: STATIC_CIDR
parentReference:
name: PARENT_NAME
namespace: platform
propagationStrategy: None
type: Branch
EOF
Substitua:
GLOBAL_API_SERVER
: o caminho kubeconfig do servidor da API de gerenciamento global. Para mais informações, consulte Servidores de API globais e zonais. Se você ainda não gerou um arquivo kubeconfig para o servidor da API, consulte Fazer login para mais detalhes.ELB_PARENT_SUBNET_NAME
: o nome escolhido para sua sub-rede global principal do ELB.STATIC_CIDR
: o bloco CIDR específico que você quer alocar para essa sub-rede principal, como10.0.10.0/27
.PARENT_NAME
: o nome da sub-rede principal atual em que esta nova sub-rede será criada.
Para configurar essa sub-rede para trabalhar com ELBs, crie uma sub-rede folha para o ELB.
Criar uma sub-rede usando uma configuração CIDR dinâmica
A configuração dinâmica de CIDR aloca automaticamente um bloco CIDR disponível
de um tamanho especificado da sub-rede principal. Isso simplifica o gerenciamento de endereços IP, principalmente em ambientes maiores.
Essa sub-rede tem o tipo Branch
. Para mais informações sobre os tipos de sub-rede raiz, ramificação e folha, consulte Hierarquia de sub-rede.
Para criar uma sub-rede global principal com um CIDR dinâmico, configure o campo
spec.ipv4Request.prefixLength
com o tamanho de prefixo escolhido:
kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF
piVersion: ipam.global.gdc.goog/v1
kind: Subnet
metadata:
labels:
ipam.gdc.goog/network-segment: data
name: ELB_PARENT_SUBNET_NAME
namespace: platform
spec:
ipv4Request:
prefixLength: PREFIX_LENGTH
parentReference:
name: PARENT_NAME
namespace: platform
propagationStrategy: None
type: Branch
EOF
Substitua:
ELB_PARENT_SUBNET_NAME
: o nome escolhido para a sub-rede principal do ELB, comolb-global-lancer-elb-subnet
.STATIC_CIDR
: o bloco CIDR específico que você quer usar, como10.0.10.0/27
. Essa variável só é aplicável à configuração estática de CIDR.PARENT_NAME
: o nome da sub-rede principal atual de onde essa nova sub-rede é criada, comodefault-vpc-workload-cidr
.PREFIX_LENGTH
: o comprimento do prefixo escolhido para o CIDR alocado dinamicamente, como27
. Essa variável só é aplicável à configuração dinâmica de CIDR.
Para configurar essa sub-rede para trabalhar com ELBs, crie uma sub-rede folha para o ELB.
Criar uma sub-rede leaf para o ELB
Depois de configurar a sub-rede global principal, crie uma sub-rede folha para alocar um único endereço IP para o serviço ELB global. Essa sub-rede folha precisa ter um valor de campo type
de Leaf
e estar no mesmo namespace de projeto que os recursos do balanceador de carga, como ForwardingRule
, BackendService
e Backend
.
Para criar a sub-rede folha e vinculá-la ao ELB, siga estas etapas:
Crie uma sub-rede folha com um valor
prefixLength
de32
, já que ela foi projetada para alocar um único endereço IP. O valorparentReference
faz referência à sub-rede global principal criada anteriormente:kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF apiVersion: ipam.global.gdc.goog/v1 kind: Subnet metadata: labels: ipam.gdc.goog/allocation-preference: default ipam.gdc.goog/network-segment: data name: ELB_IP_SUBNET_NAME namespace: PROJECT_NAMESPACE spec: ipv4Request: prefixLength: 32 parentReference: name: PARENT_REF namespace: platform type: Leaf EOF
Substitua:
ELB_IP_SUBNET_NAME
: o nome escolhido para a sub-rede folha, comolb-project-elb-ip
.PROJECT_NAMESPACE
: o namespace do Kubernetes correspondente ao seu projeto em que os objetos do ELB estão localizados, por exemplo,lb-project
.PARENT_REF
: o nome da sub-rede principal de que esta sub-rede folha extrai o endereço IP, como a sub-rede global principal criada anteriormente.
Conecte a sub-rede folha recém-criada, que contém o endereço IP alocado, ao recurso
ForwardingRuleExternal
do ELB. No recursoForwardingRuleExternal
, atualize o campospec.cidrRef.name
para referenciar o nome da sub-rede folha criada na etapa anterior:kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF apiVersion: networking.global.gdc.goog/v1 kind: ForwardingRuleExternal metadata: name: FRI_NAME namespace: PROJECT_NAMESPACE spec: ports: - port: PORT protocol: PROTOCOL backendServiceRef: name: BES_NAME cidrRef: name: LEAF_SUBNET_NAME EOF
Substitua:
FRI_NAME
: o nome escolhido para o objetoForwardingRuleExternal
, comonginx-elb-static-fr
.PORT
: o número da porta em que o ELB detecta o tráfego de entrada, como80
.PROTOCOL
: o protocolo de rede usado pelo ELB, comoTCP
ouUDP
.BES_NAME
: o nome doBackendService
associado a esse recursoForwardingRuleExternal
, comonginx-bes
.LEAF_SUBNET_NAME
: o nome da sub-rede folha criada na etapa anterior, comolb-project-elb-ip
.